Вопросы по теме 'restrict-qualifier'

Ошибка компилятора, связанная с ключевым словом restrict
Возможный дубликат: Что означает ограничить среднее значение ключевого слова в C ++? Я пытаюсь установить QMCPACK в OS X 10.8.2 и получаю много таких ошибок: bspline_base.h:95:17: error: expected ';' at end of declaration list...
641 просмотров
schedule 10.05.2022

Специализация шаблонов на C ++ AMP с ограниченными лямбдами
Используя понимание этого вопроса (и некоторых других) Я смог написать следующее для запроса информации о типе нормальной лямбда-функции (например, тип возвращаемого значения, количество аргументов и т. Д.) // helper classes...
188 просмотров

Гранулярность квалификатора limited для перекрывающихся указателей, типов
Вся суть restrict заключается в том, чтобы обещать доступ через один указатель, а не псевдоним другого. Тем не менее, есть примеры, когда перекрывающиеся адреса памяти не подразумевают псевдонимы. Например: int* arr_ptr0 = &arr[0]; int*...
152 просмотров
schedule 09.03.2023

Могу ли я использовать квалификатор ограничения в этой функции?
Я прочитал стандарт, но все еще не уверен: #include <stdio.h> #include <string.h> void repl(char *restrict ap){ char *cp=strchr(ap,(int)'m'); *cp='M'; } int main(){ char arr[] = "example"; repl(arr); puts(arr);...
106 просмотров

Вызов функции с ограниченными аргументами, которые уже ограничены в текущей области
Мне трудно понять, что означает restrict с точки зрения вызова функций с уже ограниченными переменными. Википедия говорит мне: Ключевое слово limited — это заявление о намерениях, данное программистом компилятору. В нем говорится, что в...
422 просмотров
schedule 21.01.2024

Подробное, но читаемое объяснение квалификатора ограничения?
Наконец-то я заинтересовался некоторыми функциями C99, и теперь у меня возникли проблемы с пониманием соответствующих разделов проекта C99. Я знаю, чтоstrict — это обещание, что два ограниченных указателя не будут указывать на один и тот же объект,...
70 просмотров
schedule 08.06.2023

Является ли псевдоним указателя С++ угрозой, если указатели точно такие же?
Рассмотрим эту функцию, предназначенную для векторизации: void AddSqr(float* restrict dst, float* restrict src, int cnt) { for (int i=0; i<cnt; i++) dst[i] = src[i] * src[i]; }; Это будет работать, если src и dst, конечно, не имеют...
170 просмотров
schedule 02.06.2024

Ограничение-Ключевое слово не работает?
Я использую mingw32-gcc со стандартом C99. Я вставил ниже код с несколькими правками из статьи о ключевом слове restrict - http://wr.informatik.uni-hamburg.de/_media/teaching/wintersemester_2013_2014/epc-1314-fasselt-c-keywords-report.pdf . По...
217 просмотров
schedule 22.07.2023

Почему квалификатор limited по-прежнему позволяет memcpy получать доступ к перекрывающейся памяти?
Я хотел посмотреть, не предотвратит ли restrict доступ memcpy к перекрывающейся памяти. Функция memcpy копирует n байт из области памяти src в область памяти назначения напрямую . Области памяти не должны перекрываться. memmove...
1368 просмотров
schedule 19.07.2022

Есть ли способ сообщить компилятору C, что указатель не имеет хранилищ псевдонимов?
Если компилятор C знает, что указатель не имеет псевдонима, он может выполнить множество оптимизаций. Например, если я скомпилирую следующую функцию с gcc -O2 : int f_noalias(int *arr, int x) { int res = 0; int *p = &arr[17]; *p...
194 просмотров
schedule 22.07.2022

Clang неправильно понимает спецификатор указателя const?
В приведенном ниже коде я увидел, что clang не может выполнить лучшую оптимизацию без неявного спецификатора указателя restrict : #include <stdint.h> #include <stdlib.h> #include <stdbool.h> typedef struct { uint32_t...
454 просмотров

Сообщите компилятору С++, что аргумент не имеет псевдонима
Одно из больших различий между C/C++ и Fortran, когда дело доходит до скорости, заключается в том, что первые языки используют указатели, которым можно присваивать псевдонимы, и поэтому компилятору необходимо загружать данные на каждой итерации цикла,...
86 просмотров
schedule 20.04.2022

Реальный пример ключевого слова C limited
Недавно я узнал о ключевом слове C, ограничивающем указатели, которое может улучшить оптимизацию сглаживания указателей. Вы можете увидеть подробности ограничения ключевого слова здесь. ( https://en.wikipedia.org/wiki/Restrict ) Есть много...
68 просмотров
schedule 02.12.2022