Linux可以使用union作为函数参数??
共用体不是不能作为函数参数的吗?
为什么有很多系统调用都有共用体参数的??
比如 int semctl(int semid,int semnum,int cmd,union semun arg);
最后一个参数就是union的了{:3_198:}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
可以的。什么地方说不能用?
哪里不能了,呵呵?
如何可以的话,如何在函数中判断传入来的实参是共用体中的哪个呢?
比如
union U-t{
int a;
char c[4];
}
int fnt(union U_t arg);在函数中如何知道传入函数的实参是int a 还是 char c[4]的呢?
谭浩强的书有写“不能把共用体变量作为函数参数的”
本帖最后由 cokeboL 于 2011-05-24 15:50 编辑
先把union的概念搞清楚撒。。。传的是union,参数就是union,用int还是char是函数的事,用啥就是啥。
试过了,的确可以使用共用体作为函数参数
但是为什么
函数原型是int semctl(int semid,int semnum,int cmd,union semun arg);
函数调用可以是semctl(semid,0,SETVAL,1);
我不明白的是最后那个形参明明是union但是调用的时候却给个整型的1????