Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Evaluasi ekspresi pada waktu kompilasi dan hasilkan kesalahan saat hasilnya adalah FALSE.
Sintaks
_STATIC_ASSERT(
booleanExpression
);
Parameter
booleanExpression
Ekspresi (termasuk pointer) yang mengevaluasi ke nonzero (TRUE) atau 0 (FALSE).
Keterangan
Makro ini menyerupai _ASSERT makro dan _ASSERTE , kecuali yang booleanExpression dievaluasi pada waktu kompilasi alih-alih pada runtime. Jika booleanExpression mengevaluasi ke FALSE (0), Compiler Error C2466 dihasilkan.
Contoh
Dalam contoh ini, kami memeriksa apakah sizeof nilainya int lebih besar dari atau sama dengan 2 byte dan apakah sizeof byte adalah long 1. Program tidak akan dikompilasi dan akan menghasilkan Compiler Error C2466 karena long lebih besar dari 1 byte.
// crt__static_assert.c
#include <crtdbg.h>
#include <stdio.h>
_STATIC_ASSERT(sizeof(int) >= 2);
_STATIC_ASSERT(sizeof(long) == 1); // C2466
int main()
{
printf("I am sure that sizeof(int) will be >= 2: %d\n",
sizeof(int));
printf("I am not so sure that sizeof(long) == 1: %d\n",
sizeof(long));
}
Persyaratan
| Makro | Header yang diperlukan |
|---|---|
_STATIC_ASSERT |
<crtdbg.h> |
Lihat juga
Referensi fungsi alfabet
_ASSERT, _ASSERTE, _ASSERT_EXPR makro