为什么Visual Studio 2013 Intellisense在" __ declspec(selectany)"被定义为宏?

时间:2017-03-16 05:40:47

标签: visual-studio visual-studio-2013 intellisense

我的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的行为?

0 个答案:

没有答案