相关疑难解决方法(0)

在C++中确定32对64位

我正在寻找一种方法可靠地确定C++代码是在32位还是64位编译.我们已经提出了我们认为使用宏的合理解决方案,但很想知道人们是否可以想到这可能会失败的情况,或者是否有更好的方法来做到这一点.请注意,我们正在尝试在跨平台的多编译器环境中执行此操作.

#if ((ULONG_MAX) == (UINT_MAX))
# define IS32BIT
#else
# define IS64BIT
#endif

#ifdef IS64BIT
DoMy64BitOperation()
#else
DoMy32BitOperation()
#endif
Run Code Online (Sandbox Code Playgroud)

谢谢.

c++ conditional-compilation 32bit-64bit

127
推荐指数
8
解决办法
11万
查看次数

编译器错误"令牌之前缺少二元运算符"是什么意思?

我最近在尝试使用gcc编译时遇到以下错误:

错误:在令牌之前缺少二元运算符"("

Web和SO搜索提出了这个错误的几个具体示例,并通过特定的代码更改来修复它们.但我没有找到导致发出此错误的条件的一般描述.

何时以及为什么gcc会发出此错误?

gcc compiler-errors c-preprocessor

18
推荐指数
2
解决办法
3万
查看次数

海报与C语言的8个翻译阶段

有没有人引用海报/单页pdf或类似的东西与C语言的八个翻译阶段列表(第一个是三字母翻译)?我想在我的电脑旁边的墙上挂一个印刷品.

更新:抱歉忘记指定.我对C90很感兴趣(虽然C99可能非常接近,_Pragma如pmg所说,答案是C99特定的,我想避免这种情况).

c

17
推荐指数
2
解决办法
6584
查看次数

为什么我不能在#if中使用sizeof()?

我有这个:

#if sizeof(int)
    #error Can't use sizeof in a #if
#endif
Run Code Online (Sandbox Code Playgroud)

我得到这个编译器错误:

missing binary operator before token "("
Run Code Online (Sandbox Code Playgroud)

为什么我不能在这里使用sizeof运算符?

c sizeof c-preprocessor

12
推荐指数
1
解决办法
6866
查看次数

C++在预处理器#if中的sizeof()比较中抛出编译错误

我有这个不能编译与Visual Studio的错误"致命错误C1017:无效的整数常量表达式".我该怎么做?

template <class B>
A *Create()
{
  #if sizeof(B) > sizeof(A)
  #error sizeof(B) > sizeof(A)!
  #endif
  ...
}
Run Code Online (Sandbox Code Playgroud)

c++ sizeof c-preprocessor

4
推荐指数
5
解决办法
4564
查看次数