Все вопросы: [restrict-qualifier]
8 вопросов
What can human beings make out of the restrict qualifier?
If I got the C99 restrict keyword right, qualifying a pointer with it is a promise made that the data it references won't be modified behind the compiler's back through aliasing. By contrast, the way I understand the const qualifier is as compiler-enforced documentation that a given object won't...
What are the semantics of C99's "restrict" with regards to pointers to pointers?
I am doing lots of matrix arithmetic and would like to take advantage of C99's restrict pointer qualifier. I'd like to setup my matrices as pointers to pointers to allow for easy subscripting, like so: int **A = malloc (ncols * sizeof(int *)); A[0] = malloc (nrows * ncols * sizof(int)); for (in...
error using restrict keyword
In the following example: void foo (double *ptr) { const double * restrict const restr_ptr=ptr; } I get this error: error: expected a ";" const double * restrict const restr_ptr=ptr; ^ I compile with -std=c99, using gcc 3.4...
ограниченность с pre-c99
Учитывая этот код, VC9 не обнаруживает алиасинг: typedef struct { int x, y; } vec_t; void rotate_cw(vec_t const *from, vec_t *to) { /* Notice x depends on y and vice versa */ to->x = from->y; to->y = -from->x; } /* ... */ vec_t a, b; ...
Когда использовать ограничение, а когда нет
У меня есть общее представление о restrict, но я надеюсь прояснить некоторые тонкости. У меня есть функция, которая считывает строку с завершающим нулем из одного буфера и записывает версию в кодировке URL в другой буфер. Функция имеет эту сигнатуру (в настоящее время без restrict): char cons...
Что означает ключевое слово restrict в C ++?
Я всегда был не уверен, что означает ключевое слово restrict в C ++? Означает ли это, что два или более указателя, заданных функции, не перекрываются? Что еще это значит?
Реалистичное использование ключевого слова C99 «restrict»?
Я просматривал документацию и вопросы / ответы и увидел, что это упомянуто. Я прочитал краткое описание, в котором говорилось, что это будет в основном обещание программиста, что указатель не будет использоваться для указания куда-то еще. Может ли кто-нибудь предложить несколько реальных прим...
Ограничивает ли справку в C, если указатель уже помечен как const?
Просто интересно: когда я добавляю ограничение к указателю, я говорю компилятору, что указатель не является псевдонимом для другого указателя. Предположим, у меня есть такая функция: // Constructed example void foo (float* result, const float* a, const float* b, const size_t size) { for ...