我在Visual Studio 2010中有一个大型C项目构建。我已经将其中一个函数声明为内联,这种函数更经常被调用。我已将函数pdebug
声明为:
void inline pdebug(int debug_mask,int level,char *format,...);
<{1>}中的及其在同一目录中的debug.h
中的定义。
使用此功能的文件debug.c
,我已完成pdebug
。
编译因以下错误而失败:
#include<debug.h>
答案 0 :(得分:4)
我认为您将代码编译为“C”,Visual Studio仅在C ++中支持inline
。
来自http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx
inline关键字仅在C ++中可用。 __inline和__forceinline关键字在C和C ++中都可用。为了与先前版本兼容,_inline是__inline的同义词。
当然,请查看正确顺序的其他答案。
但是......
你似乎有这个带有可变参数的函数...不建议使用这样的函数(由我来,但我不是这方面的专家),因为根据编译器设置,你的代码会增长到巨大的大小(如果编译器真的决定它会内联这个)。内联对于小函数是完美的,它不是由几个语句组成的。内联大函数可能会产生很大的代码。
答案 1 :(得分:1)
应该是inline void pdebug
而不是void inline pdebug
。