我的C(非C ++ )项目包含3个文件:
(Lib.h)
extern const int X;
(Lib.c)
#define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany)
GLOBAL_REMOVE_IF_UNREFERENCED const int X = 123;
(MAIN.C)
#include "Header.h"
void main()
{
int Y = X; // <=== Press F12 to jump to the definition of X
}
我在X
的{{1}}按F12,希望跳转到Main.c
中的X定义。但相反,VS只跳转到 Lib.h 中的声明。
但如果我更改Lib.c
以删除宏定义并直接使用Lib.c
(请参阅下文),则按X上的F12将跳转到 Lib.c 我期待。
(Lib.c&#39)
__declspec(selectany)
为什么使用宏语法会改变Visual Studio中Intellisense的行为?