Que signifie " typedef NOT_LP64(uint16_t) LP64_ONLY(uint32_t) idx_t;
"?Qu'est-ce que typedef avec plusieurs types à un alias?
Le code provient de jdk8, taskqueue.hpp
.
Je ne comprends pas la syntaxe ci-dessus.
Je trouve beaucoup d'explications sur typedef type name
, mais elles n'expliquent pas la situation ci-dessus.
NOT_LP64
et LP64_ONLY
sont définis dans le fichier macro.hpp
.
#ifdef _LP64
#define LP64_ONLY(code) code
#define NOT_LP64(code)
#else // !_LP64
#define LP64_ONLY(code)
#define NOT_LP64(code) code
#endif // _LP64
l'une des macros va se développer à rien – user463035818
De 'LP64_ONLY' et' NOT_LP64', l'un d'entre eux se développera pour être son argument et l'autre se développera pour n'être rien. Il vous reste un 'typedef' avec un seul type, et un peu d'espace blanc supplémentaire. –
Je vois. 'typedef' peut s'étendre à rien. C'est la raison. Je l'ai! – skytree