Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Nový ve standardu typeof C23 je operátor unární operátor, který vrací typ výrazu. Lze jej použít v deklaracích typů, přetypování typů, kontrolách typů atd. Získá typ proměnné, funkce nebo libovolného výrazu jazyka C.
Klíčové __typeof__ slovo je rozšíření specifické pro Microsoft, které poskytuje stejné funkce jako typeof. Klíčové __typeof__ slovo se liší od typeof toho, že je k dispozici při kompilaci pro všechny verze jazyka C (nejen /std:clatest) a může usnadnit přenos kódu mezi jinými kompilátory, které podporují __typeof__.
Syntaxe typeof
typeof(type)
typeof(constant-expression)
__typeof__(constant-expression)
typeof příklad
Tento příklad používá typeof(), ale chování je stejné, pokud používáte __typeof__.
// Compile with /std:clatest
#include <stdio.h>
double func()
{
3.14;
}
#define POINTER(T) typeof(T*)
int main()
{
auto a = func(); // the type for a (double) is inferred, but requires initialization at point of declaration
typeof(func()) b; // the type for b is double, but didn't have to be initialized at point of declaration
// Some declarations using typeof
POINTER(int) p1 = NULL; // p1 is int*
typeof(double(void))* pFunc = func; // pFunc is a pointer to a function that takes no arguments and returns a double
printf("pFunc() returns %f\n", pFunc());
return 0;
}
Požadavky
Vyžaduje Visual Studio 17.9 nebo novější nebo cl.exe verzi 19.39.33428 nebo novější.
Chcete-li použít typeof, zkompilujte s /std:clatest.