在C语言中声明和原型有什么区别?在什么情况下,它们被称为声明,在哪些原型中?
发布于 2017-05-04 11:33:06
TL;DR;所有的原型都是声明,但并不是所有的声明都是原型。
声明是通用术语中使用的标准,原型更具体。
引用C11,第6.7章
声明指定一组标识符的解释和属性。..。
从第6.7.6节起,
每个声明器声明一个标识符,并声明当一个与声明器形式相同的操作数出现在表达式中时,它指定一个函数或对象,其作用域、存储时间和声明说明符所指示的类型。
另一方面,取自第6.2.1章
……函数原型是声明其参数类型的函数的声明。
因此,一个线性,原型是更完整的形式(包括参数类型)的声明。
关于“标识符”:第6.4.2.1章,
标识符是一系列非数字字符(包括下划线
_、小写和大写拉丁字母以及其他字符)和数字,它们指定一个或多个实体,如6.2.1中所述。..。
在第6.2.1章中,
标识符可以表示一个对象;一个函数;一个标签或一个结构、联合或枚举的成员;一个类型胡枝子名称;一个标签名称;一个宏名称;或者一个宏参数。……
https://stackoverflow.com/questions/43781565
复制相似问题