【发布时间】:2011-06-02 16:01:36
【问题描述】:
这是一个使用旧式语法定义和定义的简单函数:
#include <stdio.h>
void
error(message,a1,a2,a3,a4,a5,a6,a7)
char *message;
char *a1,*a2,*a3,*a4,*a5,*a6,*a7;
{
fprintf(stderr,message,a1,a2,a3,a4,a5,a6,a7);
}
int main ()
{
error("[ERROR %d]: %s.\n",110,"Connection timed out");
return 0;
}
可以编译并正确运行打印:
[ERROR 110]:连接超时。
我读到这种风格没有关联原型,但是它如何在运行时自动将 int 转换为 char * 甚至提供的参数比它声明的要少?
【问题讨论】:
标签: c function coding-style runtime