私のCソースファイルにprivate型の構造体をタグとして定義し、構造体型を型に宣言すると、コンテンツがユーザーに表示されず、名前空間はきれいに保たれ、ユーザーは必要ではないファイルを自動的には含めません。C/C++ - 構造体タグ - 不完全型
私はC++で同じことをしようとはしていませんが、許可していないと言っています:不完全な型は定義できません。
// test.cpp ---------------------------------
#include "test.hpp"
struct myStructTag_s
{
int A;
int B;
};
// test.hpp ---------------------------------
#ifndef TEST_HPP_
#define TEST_HPP_
typedef struct myStructTag_s myStructTag_t;
#endif /* TEST_HPP_ */
// main.cpp ---------------------------------
#include "test.hpp"
myStructTag_t A;
int main()
{
A.A = 5;
return 0;
}
をあなたの ' typedef struct myStructTag_s'は不正な構文を使用します - '}'の後に型名があります。 – Ivan
C++では、 'struct'を' typedef'する必要はありません。 'struct'sは暗黙的に型名です。 –
@Ivanこれは私のコードの例でそこにあるとは言えませんでした。私はそれが書かれているように今正しく、しかし動作しません。 –