sigaction结构和功能

时间:2013-01-08 10:48:15

标签: c++ linux signals

以下代码编译,

struct sigaction sa;
memset (&sa, 0, sizeof (sa));
sa.sa_handler = &handler;
sigaction (SIGRTMIN + 5, &sa, NULL);

但如果我省略struct,则会给我错误:

  

预期';'在'sa'之前

我正在使用c ++,其中使用struct关键字不是必需的。

当我使用struct时,它是如何工作的。

1 个答案:

答案 0 :(得分:7)

在C中,结构标签位于与其他标签不同的名称空间中 名字,所以他们不能冲突。在C ++中,有一个特殊的 用语言来支持这个:除了通常的 函数重载,你可以有两个相同的符号 相同的范围,提供一个是指定类类型的类型名称 或者枚举。查找名称时,编译器会 除非名称,否则选择类型名称的那个 紧跟一个类密钥(classstructunion) 或关键字enum