c - 将 mbed 应用程序导出到 uVision

标签 c static embedded inline mbed

我是用mbed的在线编译器编程的,但现在我需要调试支持,昨晚我导出到uVision 4。不过我编译官方库时似乎有错误。

mbed/KL25Z/gpio_object.h(33): 警告:#260-D: 显式类型 issing(假定为“int”)
mbed/KL25Z/gpio_object.h(33):错误:#65:预期为“;”

此代码在其他平台上也相同。第 33 行的代码如下所示...

static inline void gpio_write(gpio_t *obj, int value) {
    if (value)
        *obj->reg_set = obj->mask;
    else
        *obj->reg_clr = obj->mask;
}

我尝试用大括号将 if-else 括起来,但没有用,所以现在我不知道该怎么做...

最佳答案

默认情况下,C 编译是 ISO C90,其中 inline 关键字无效。使用:

  • __inline C90 扩展,
  • C++ 编译或
  • C99 编译。

如果没有这些,C90 编译器会将代码解析为名为“inline”的静态变量的声明,没有显式类型和缺少分号。

关于c - 将 mbed 应用程序导出到 uVision,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16524060/

相关文章:

c++ - 非 POD 静态值如何初始化?

linux - 如何使用 Yocto 将文件部署到/boot 分区

embedded - 使用 Arduino 向 USB 发送 MIDI

c - 在C中初始化Lua状态

c - C 中的 strtok 函数如何工作?

c# - 在哪里定义错误信息

java - 最终变量首先初始化

c - 内存未分配(嵌入式 uC MSP430)

c - C 中的 For 循环和数组

c - 如何提高 CMWX1ZZABZ-091 RTC(实时时钟)的精度