Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
克鲁特纳利亚斯是干什么的 我在Windows环境中在C++函数定义中发现了一个CRTNONALIAS标志。不知道它是干什么的。 有人来帮忙吗 void _CRTNOALIAS foo() { }_C++ - Fatal编程技术网

克鲁特纳利亚斯是干什么的 我在Windows环境中在C++函数定义中发现了一个CRTNONALIAS标志。不知道它是干什么的。 有人来帮忙吗 void _CRTNOALIAS foo() { }

克鲁特纳利亚斯是干什么的 我在Windows环境中在C++函数定义中发现了一个CRTNONALIAS标志。不知道它是干什么的。 有人来帮忙吗 void _CRTNOALIAS foo() { },c++,C++,这(可能)被定义为 #define _CRTNOALIAS __declspec(noalias) 它将函数注释为noalias noalias注释是帮助优化者的指令。它指示编译器函数本身不引用全局状态,而只引用指针参数的一级间接 考虑以下几点: int *global_bar; void __declspec(noalias) foo (int *f) { int i = *f; // you can do this int i = f[0]; // and this

这(可能)被定义为

#define _CRTNOALIAS __declspec(noalias)
它将函数注释为
noalias

noalias
注释是帮助优化者的指令。它指示编译器函数本身不引用全局状态,而只引用指针参数的一级间接

考虑以下几点:

int *global_bar;

void __declspec(noalias) foo (int *f) {
    int i = *f; // you can do this
    int i = f[0]; // and this

    *global_bar = *f; // YOU CAN'T DO THIS!
}

有关更多信息,请参阅。

以前从未见过!有趣!这是否在VisualStudio提供的头文件中?看起来可能是,但在Visual Studio 2017中,CRTNOALIAS可能未定义。