在 FreeBasic 中,IIf (A, B, C)相当于A ? B : C在 C/C++/Java/C#、If (A, B, C)VB.NET 和B if A else Cpython 中。但是,在 VB6、Office VBA 和 VB.NET 中,IIf (A, B, C)相当于以下 C++ 代码:
bool a = A;
auto b = B;
auto c = C;
a ? b : c;
Run Code Online (Sandbox Code Playgroud)
因此,IIf在 Visual Basic 和 FreeBasic 中的工作方式不同。例如,
Dim x As Integer, y As Integer
x = 0
y = IIf (x <> …Run Code Online (Sandbox Code Playgroud) char *str = "String!";
Run Code Online (Sandbox Code Playgroud)
char *str = (char []){"String!"};
Run Code Online (Sandbox Code Playgroud)
这两个初始化等效吗?如果不是,它们之间有什么区别?
假设IDENDEBUG在Release构建中定义了宏。是否可以使用以下预处理器指令在调试版本中打印调试信息,但不能通过使用 marco 在发布版本中打印调试信息PRINT?
#ifdef NDEBUG
#define PRINT /##/
#else
#define PRINT printf
#endif
Run Code Online (Sandbox Code Playgroud)