我在
Windows环境中的C函数定义中找到了_CRTNOALIAS标志.不知道它做了什么.
有人帮忙
void _CRTNOALIAS foo()
{
}
最佳答案 这(可能)定义为
#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!
}
有关更多信息,请参阅MSDN documentation.