在sigaction.h头文件中探索处理系统信号请求的设备时,我注意到一个结构和一个返回int的函数被命名为sigaction 。
尽pipe它在语义上似乎是正确的,但由于编译器应该能够在两个定义之间进行推导,为什么sigaction有效C语法的重复定义?
linux相当于windows的EnterCriticalSection
使用SMTP作为IP地址发送邮件时,无法parsing远程名称
检查两个NTAccount对象的相等性
Qt Creator无法find标题(说:“没有这样的文件或目录”)
混合function代码和预处理器指令是一个不好的做法吗?
在C中,结构标签与其他名称存在于不同的名称空间中。 该结构称为struct sigaction ,而功能只是sigaction 。
编译器能够分离结构标签(也是联合和枚举),因为它们分别遵循关键字struct / union / enum (C11§6.2.3p1)。
然后,根据§6.7p3,声明必须在“同名空间”内是唯一的。
由于结构标签和功能标识符(它们是普通标识符 )不在同一个名称空间中,因此“冲突”是可以的。
说到使用,你不能这样做:
typedef struct _test { int a; } test; voID test(voID) { }
编译器会通知你:
test.c:5:6: error: 'test' redeclared as different kind of symbol voID test(voID) { ^ test.c:3:3: note: prevIoUs declaration of 'test' was here } test;
总结以上是内存溢出为你收集整理的C的命名约定:结构和函数全部内容,希望文章能够帮你解决C的命名约定:结构和函数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)