Вопросы по теме '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 просмотров
schedule
10.02.2023
Гранулярность квалификатора 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 просмотров
schedule
09.02.2023
Вызов функции с ограниченными аргументами, которые уже ограничены в текущей области
Мне трудно понять, что означает 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 просмотров
schedule
06.12.2022
Сообщите компилятору С++, что аргумент не имеет псевдонима
Одно из больших различий между C/C++ и Fortran, когда дело доходит до скорости, заключается в том, что первые языки используют указатели, которым можно присваивать псевдонимы, и поэтому компилятору необходимо загружать данные на каждой итерации цикла,...
86 просмотров
schedule
20.04.2022
Реальный пример ключевого слова C limited
Недавно я узнал о ключевом слове C, ограничивающем указатели, которое может улучшить оптимизацию сглаживания указателей.
Вы можете увидеть подробности ограничения ключевого слова здесь. ( https://en.wikipedia.org/wiki/Restrict )
Есть много...
68 просмотров
schedule
02.12.2022