C语言代码中发现奇怪的函数定义形式。求高手鉴定。

2024-12-17 08:16:08
推荐回答(3个)
回答1:

老式函数写法。等同:int u2dos (char *path) {....}
同样的,主函数 等同:void main(int argc,char **argv)

struct _utimbuf ut_buf; 标识符可以以下划线开始。
_utimbuf 是编译系统规定的 “标准变量类型”,它是结构类型。存放 文件建立或修改 的时间的结构,头文件 SYS\UTIME.H 定义了它。所以 这里 不能去掉下划线 !

回答2:

呵呵,这个也是对的,只不过是老式的写法而已。。。。但现在的编译器不一定能编译通过,但是正确的 ,没有什么奇怪的。struct _utimbuf ut_buf这个是一个结构体类型的变量,等价于_utimbuf ut_buf,而struct utimbuf是在定义一个结构体类型的数据

回答3:

c89标准之前的写法,在K&R最早的版本中都是这么写的,现在许多主流编译器都不支持这种写法了,在linux内核中还可以看到,建议楼主了解就行,不要学习这种风格。