对C的一些疑问,高手请进
疑问一:库函数printf、scanf等形参数量可变怎么理解?在编译器win-tc中printf的函数原型是:int _Cdecl printf (const char *format, ...);
Vc里面的定义也类似。
后来自己写了一个形参类似的空函数,很奇怪竟能编译通过,vc里也能通过。虽然形参列表中的三个句号不是C的标识符。
疑问二:编译器中头文件对库函数原型的声明中在返回值类型和函数名之间总有一个 _cdecl。这个符号是什么意思?
我发现把_cdecl加在自己定义的函数中也能通过,且不影响结果。
例如:如下定义的求最大值函数:
int _cdecl max(int x,int y)
{return x>y?x : y;}
还有就是很多编译器对_cdecl都是高亮度语法显示。好像它也是一个关键字一样。