Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Nytt i C23-standarden är operatorn typeof_unqual en unary-operator som returnerar typen av ett uttryck efter att ha ignorerat kvalificerare som const, volatileoch restrict. Det kan användas i typdeklarationer, typgjutningar, typkontroller och så vidare. Den hämtar typen av en variabel, funktion eller valfritt C-uttryck.
Nyckelordet __typeof_unqual__ är ett Microsoft-specifikt tillägg som innehåller samma funktioner som typeof_unqual. Nyckelordet __typeof_unqual__ skiljer sig från typeof_unqual endast i och med att det är tillgängligt vid kompilering för alla versioner av C (inte bara /std:clatest), och det kan underlätta portningskoden mellan andra kompilatorer som stöder __typeof_unqual__.
typeof_unqual syntax
typeof_unqual(type)
typeof_unqual(constant-expression)
__typeof__unqual(constant-expression)
typeof_unqual exempel
I det här exemplet används typeof_unqual(), men beteendet är detsamma om du använder __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;
}
Kravspecifikation
Kräver Visual Studio 17.9 eller senare, eller cl.exe version 19.39.33428 eller senare.
Kompilera med /std:clatestom du vill använda typeof_unqual.