- 论坛徽章:
- 0
|
本帖最后由 幻の上帝 于 2012-05-28 21:29 编辑
回复 127# wwwsq
首先需要明确,你在这楼说的此属性非彼GNU C的函数属性,尽管GNU C引入function attributes的目的上和你说的有交集。
其次,static、const之类的东西对于C来说是清晰毫无疑问包含在其中的内容(作为关键字);而GNU C的attributes不是C的内容,只是GNU C(或者还有兼容实现定义的方言)的内容。
你要说“属性”存在倒也不能算错,不过太过于模糊了,容易混淆,所以很多人不支持你的观点。而在这里“函数属性”和“函数的属性”又差了一个档次。
如果有上下文,可以明确含义,倒也无妨,比如:
ISO C11(N1570)
Semantics
6.7/5 A declaration specifies the interpretation and attributes of a set of identifiers. A definition
of an identifier is a declaration for that identifier that:
— for an object, causes storage to be reserved for that object;
— for a function, includes the function body;119)
— for an enumeration constant, is the (only) declaration of the identifier;
— for a typedef name, is the first (or only) declaration of the identifier.
再如:alignment attribute。
不过,这些也不是语言特性,纯粹只是自然语言意义上的说明。(即便要真引入作为语言特性的attribute——比如像C++11那样,这里也不至于混淆。)
既然是能当作教材的书,不无畏无谓增大读者混淆的风险就应该是义务。使用明显的说辞使读者区分是否语言特性,也不算很高的要求。
谭X讲C而不是GNU C或者其它C,把你要说的“属性”这种概念笼统地叫做“函数属性”就是不合适的,万一真有初学者去看GCC文档里的这节了呢,要弄明白区别需要浪费多少时间?
如果不考虑作者的水平,只说书在这点上的内容的质量,那么你可以不认为这个说法是错的,但是无论如何也无法正大光明地说成“对”的,因为至少不清晰。以我个人看倒是宁可认为谭X完全没概念,免得通读的时候为作者水平的起伏导致头痛。
|
|