Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A C23 szabvány újdonsága, hogy az typeof operátor egy unary operátor, amely egy kifejezés típusát adja vissza. Használható típusdeklarációkban, típusbeosztásokban, típusellenőrzésekben stb. Egy változó, függvény vagy bármely C kifejezés típusát kapja meg.
A __typeof__ kulcsszó egy Microsoft-specifikus bővítmény, amely ugyanazokat a funkciókat biztosítja, mint a typeof. A __typeof__ kulcsszó abban különbözik typeof , hogy a C összes verziójának fordításakor elérhető (nem csak /std:clatest), és megkönnyítheti a kód más, támogatott __typeof__fordítók közötti portolását.
typeof szintaxis
typeof(type)
typeof(constant-expression)
__typeof__(constant-expression)
typeof példa
Ez a példa használja typeof(), de a viselkedés ugyanaz, ha használja __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;
}
Követelmények
A Visual Studio 17.9-es vagy újabb verziójára, illetve cl.exe a 19.39.33428-es vagy újabb verzióra van szükség.
A használathoz typeoffordítsa le a következővel /std:clatest: .