restrict-qualifier

    1热度

    3回答

    我读的标准,但仍不能确定: #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);

    3热度

    1回答

    我在更新性能关键库使用限制的过程中,如在实施下用g ++以及MSVC++ 11与关键字__restrict。这似乎是最标准的扩展,所以我会用restrict和__restrict互换。 restrict是C99关键字,但尽管如此编译器已在C++定义为它重要的用途。 这个帖子打算成为一个“问题”询问了每个C++ - 具体用途是什么,它的意思,随后CW的答案回答它。随意添加/检查/编辑。所以:“帮助!

    3热度

    2回答

    我读过了关于restrict关键字的许多帖子。但实际上,我可以找到的每个示例似乎都只将输入参数引用到函数中,也许只是一个值。我需要澄清我的理解。 我发现一个函数看起来像是完全违反了输入参数和局部变量的关键字规则。 该函数用void *调用到缓冲区,指针声明为_restrict(这是Microsoft Visual C++)。在函数的后面,声明一个类型为UCHAR *的本地变量指针,并使其指向同一个

    0热度

    2回答

    当我们有恒定的数据时,例如形式 double const * const或 double const * 这是否给编译器的信息相同__restrict /它有同样的效果呢? 据我所知,__restrict基本上承诺,指出的数据不会被/通过另一个指针更改。所以,一个指向const值的指针会有相同的承诺,不是吗? __restrict这里指的是Visual Studio中的关键字。我猜GCC中的含义是

    1热度

    2回答

    我在CppCon 2014年都是看Mike Acton's talk on Data-oriented design in C++,他给出了这样的例子: int Foo::Bar(int count) { int value = 0; for (int i = 0; i < count; i++) { if (m_someDataMemberOfFoo) valu

    1热度

    1回答

    我正在使用mingw32-gcc和C99标准。我通过关于restrict关键字http://wr.informatik.uni-hamburg.de/_media/teaching/wintersemester_2013_2014/epc-1314-fasselt-c-keywords-report.pdf的文章进行了一些编辑,从而在代码下面粘贴了代码。根据作者,"Result One"和"Res

    6热度

    3回答

    如果dot_product被声明为 float dot_product(const float* restrict a, const float* restrict b, unsigned n); 将与 dot_product(x, x, x_len) 是 “不确定” 调用它,按C99标准? 编辑 x是一个指针,当然,指向sizeof(float) * x_len字节的存储器,x_len是

    1热度

    2回答

    当我输入printf时,Xcode给我一个自动完成提示,如printf(const char *restrict, ...)。 我想知道什么是“为const char *限制意味着 和我在哪里可以找到这些参数,Xcode中抛出的每一个功能的更多信息

    0热度

    1回答

    下应,我相信,编译和链接,但并不: template<class S> class A { public: virtual int foo(S arg) = 0; virtual ~A() { } }; class B : public A<int* __restrict__> { public: int foo(int* __restrict__ ar

    11热度

    2回答

    有没有办法告诉C99编译器,我要访问给定数组的唯一方法是使用myarray [index]? 说是这样的: int heavy_calcualtions(float* restrict range1, float* restrict range2) { float __I promise I won't alias this__ tmpvalues[1000] = {0};