我正在使用用于Android手机的ARM编译器来编译调制解调器代码。
我收到以下错误:

function "typeof" declared implicitly


然后,尽管我应该使用__typeof__。但是我遇到了同样的错误:

function "__typeof__" declared implicitly


我什至尝试了__typeof。但是它们都不起作用。

为什么?

编译器为RVDS 5.01。
命令行包含在某些脚本中。

错误消息是:

"/opt2/huanglianjun/PD1401V-modem-1.2.1.c1/boot_images/core/storage/ext4/src/com‌​mon/div64.h", line 47:
Error: #223-D: function "typeof" declared implicitly.


代码是:

#define do_div(n,base) do{  \
      uint32_t __base = (base); \
      uint32_t __rem;   \
      (void)(((typeof((n)) *)0) == ((uint64_t *)0));    \
      if (((n) >> 32) == 0) {   \
          __rem = (uint32_t)(n) % __base;   \
          (n) = (uint32_t)(n) / __base; \
      } else    \
          __rem = __div64_32(&(n), __base); \
          __rem;    \
    }while(0)

最佳答案

如果我没看错the documentation,至少从RVDS 3.0开始就支持typeof,但是您需要通过将--gnu标志传递给armcc来启用GNU mode

关于c - 在RVDS 5.01上隐式声明的函数“typeof”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31982546/

10-11 21:14