Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
以下代码编译,
struct sigaction sa; memset (&sa, 0, sizeof (sa)); sa.sa_handler = &handler; sigaction (SIGRTMIN + 5, &sa, NULL);
但如果我省略struct它会给我错误:
struct
预期的 ';' 在'sa'之前
我正在使用struct不需要 using 关键字的 c++。
当我使用它时它是如何工作struct的。
在 C 中,结构标签与其他名称位于单独的名称空间中,因此它们不会发生冲突。在 C++ 中,语言中有一个特殊的技巧来支持这一点:除了通常的函数重载之外,您可以在同一范围内拥有两个相同的符号,提供一个是指定类类型或枚举的类型名称。查找名称时,编译器将选择不是类型名称的名称,除非该名称紧跟在类键(class或struct)union或关键字之后enum。
class
union
enum