克鲁特纳利亚斯是干什么的 我在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可能未定义。