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キーワードの使用が不要なC++を使用しています。
を使用するとどのように機能しますかstruct。
Cでは、構造体タグは他の名前とは別の名前空間にあるため、競合することはありませんでした。C ++では、これをサポートするために言語に特別なハックがあります。通常の関数のオーバーロードに加えて、同じスコープ内に2つの同一のシンボルを含めることができます。ただし、1つはクラスタイプまたは列挙型を指定するタイプ名です。名前が検索されると、コンパイラは、名前がクラスキー(、、または)またはキーワードの直後に続かない限り、型名ではないものを選択します。classstructunionenum
class
union
enum