vs中的c程序该语句 typedef short bool; 报错,怎么破?bool必须换名字吗?

黎大 2017-04-28 07:40:59
typedef short bool;

vs默认就去用了c++的库,结果就悲剧了
1 IntelliSense: 类型说明符的组合无效
报错如下

只能给bool换一个名字吗


...全文
511 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2017-04-28
  • 打赏
  • 举报
回复
#ifndef __cplusplus typedef unsigned char bool; #endif
幻夢之葉 2017-04-28
  • 打赏
  • 举报
回复
你建立的是cpp当然用的是c++运行库
ipqtjmqj 2017-04-28
  • 打赏
  • 举报
回复
既然是c程序,把源文件后缀改成.c就行了
幻夢之葉 2017-04-28
  • 打赏
  • 举报
回复
引用 7 楼 jianwen0529 的回复:
[quote=引用 5 楼 peterlee1983 的回复:] [quote=引用 2 楼 jianwen0529 的回复:] 你建立的是cpp当然用的是c++运行库
拜托,咱建立的就是.c[/quote] 纯粹C是没有任何问题的,估计是其他原因。 你可以参考3楼 也可以直接使用C99直接导入stdbool.h,这里有定义bool类型,你这句别名就不再需要。 // VS2013 // main.c

#include <stdio.h>

typedef short bool;
#define false 0;
#define true  1;

int main()
{
    bool b = true;
    printf("%d\n", b);
    if (b)
    {
        printf("The bool value is true\n");
    }
    return 0;
}
[/quote] 代码有点小问题,#define 后面不应该有;分号
幻夢之葉 2017-04-28
  • 打赏
  • 举报
回复
引用 5 楼 peterlee1983 的回复:
[quote=引用 2 楼 jianwen0529 的回复:] 你建立的是cpp当然用的是c++运行库
拜托,咱建立的就是.c[/quote] 纯粹C是没有任何问题的,估计是其他原因。 你可以参考3楼 也可以直接使用C99直接导入stdbool.h,这里有定义bool类型,你这句别名就不再需要。 // VS2013 // main.c

#include <stdio.h>

typedef short bool;
#define false 0;
#define true  1;

int main()
{
    bool b = true;
    printf("%d\n", b);
    if (b)
    {
        printf("The bool value is true\n");
    }
    return 0;
}
paschen 2017-04-28
  • 打赏
  • 举报
回复
C++里有bool关键字 从语义上讲也不建议把short用bool代替
黎大 2017-04-28
  • 打赏
  • 举报
回复
引用 2 楼 jianwen0529 的回复:
你建立的是cpp当然用的是c++运行库
拜托,咱建立的就是.c
自信男孩 2017-04-28
  • 打赏
  • 举报
回复
建议不要将short的别名为bool,因为bool本身就是类型(C99),建议将short定义成其他名字,比如s16等等

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧