相关疑难解决方法(0)

C99'conctrict'关键字的实际用法?

我正在浏览一些文档和问题/答案,并看到它提到.我读了一个简短的描述,声明它基本上是程序员的承诺,指针不会用于指向其他地方.

任何人都可以提供一些现实案例,其值得实际使用吗?

c gcc c99 restrict-qualifier

176
推荐指数
2
解决办法
4万
查看次数

C99中是否允许这种冗余加载/存储优化?

考虑以下:

extern void bar(int *restrict);

void foo(int *restrict p) {
  int tmp;
  bar(&tmp);
  *p = tmp;
}
Run Code Online (Sandbox Code Playgroud)

C99规范是否允许优化foo以下?

extern void bar(int *restrict);

void foo(int *restrict p) {
  bar(p);
}
Run Code Online (Sandbox Code Playgroud)

我在-O3模式下尝试了gcc,Clang和Intel Compiler,并且都没有生成反映上述优化的代码.这让我怀疑这种优化打破了规范.如果不允许,那么它在规范中的含义是什么?

注意:我的问题受到这个SO问题的启发

c optimization standards

12
推荐指数
1
解决办法
2840
查看次数

标签 统计

c ×2

c99 ×1

gcc ×1

optimization ×1

restrict-qualifier ×1

standards ×1