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 C23 je operátor unární operátor, typeof_unqual který vrací typ výrazu po zahození kvalifikátorů, jako constje , volatilea restrict. 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_unqual__ slovo je rozšíření specifické pro Microsoft, které poskytuje stejné funkce jako typeof_unqual. Klíčové __typeof_unqual__ slovo se liší od typeof_unqual 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_unqual__.
Syntaxe typeof_unqual
typeof_unqual(type)
typeof_unqual(constant-expression)
__typeof__unqual(constant-expression)
typeof_unqual příklad
Tento příklad používá typeof_unqual(), ale chování je stejné, pokud používáte __typeof_unqual__.
// Compile with /std:clatest and /experimental:c11atomics
#include <stdatomic.h>
// A function that takes an atomic int pointer, but uses a non-atomic copy of the value
void func(_Atomic(int) * pAtomic)
{
typeof_unqual(*pAtomic) local = *pAtomic;
// Use local non-atomic copy of value
}
int main()
{
int* const cpVar1 = 2;
typeof_unqual(cpVar1) pVar2 = 3;
pVar2 = 4; // no error because pi is not const. cpVar1 = 4 would be an error.
_Atomic(int)i = 42;
func(&i);
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_unqual, zkompilujte s /std:clatest.