[英]Does “&” vs. “&&” actually make a difference for compile-time flags?
[英]Visual Studio sizeof() difference IntelliSense vs. compile-time
我的代碼看起來像這樣:
#include <stdio.h>
#pragma pack(1)
class MyClass
{
bool a;
bool b;
int c;
char d[3];
bool e[4];
};
#pragma pack()
int main()
{
printf("sizeof(MyClass)=%d\n", sizeof(MyClass));
return 0;
}
輸出是:
sizeof(MyClass)=13
但當我“懸停”在sizeof(MyClass)
我得到:
這不是一個大問題,但我正在嘗試實現編譯時斷言,但它不起作用(獲得紅色下划線):
任何人都知道如何解決這個問題?
這不是編譯時和運行時之間的區別; 它是您的編譯器和IDE的“intellisense”之間的區別,后者似乎不支持/識別#pragma pack
指令。
忽略它。 大小是13。
既然你可以實際構建你的程序,你知道編譯時斷言成功,盡管有“紅線”。
在斷言之前添加注釋可能是值得的,並解釋說Visual Studio 2015的用戶會在IDE中看到以下斷言的錯誤否定。
您可能還希望在Microsoft Connect上引發錯誤,如果還沒有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.