如今对于大多数平台的C编译器来说都会有非常多种选择,而gcc和clang无疑是2个非常优秀的C编译器。当然他们也不仅仅是C编译器。我近期用clang的比較多。原因有非常多。

只是一些小的细节非常让我喜欢,比方OS X系统中,clang的编译器警告或错误提示是以彩色文本醒目打印出来的。

而gcc则不管怎样打印的颜色都一样(我不知道是否有什么设置能够改变这一点)。

可是gcc也有其人性化的一点,就是在某些比較隐晦的错误时,会有更友好的提示。比方标签后不能直接写声明这样的情况。2种编译器的结果例如以下:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
#include <unistd.h>int main(void)
{int i = 0;puts("hello world!");
LAB:int x = 10;printf("now is %d\n",i++);sleep(3);goto LAB;return 0;
}

clang编译结果:

apple@kissAir: c_src$clang -std=c11 -Wall -O3 -g0 -o x x.c

x.c:12:2: error: expected expression

int x = 10;

^

1 error generated.

gcc编译结果:

apple@kissAir: c_src$gcc -std=c11 -Wall -O3 -g0 -o x x.c

gcc: warning: couldn't understand kern.osversion '14.0.0

x.c: In function 'main':

x.c:12:2: error: a label can only be part of a statement and a declaration is not a statement

int x = 10;

^

x.c:12:6: warning: unused variable 'x' [-Wunused-variable]

int x = 10;

^

能够非常清楚的看出,前者仅仅是简单一句模凌两可的提示,让刚開始学习的人丈二和尚摸不着头脑;只是后者解释的就非常清楚了,这是不是让初学乍到的程序员们感觉非常温馨呢?

转载于:https://www.cnblogs.com/jzssuanfa/p/6999153.html

关于gcc的一点小人性化提示相关推荐

  1. AWS 计算云sagemaker有个功能session超过12小时会提示重新new一个,很赞,AWS的页面第一次看见很丑陋,当今天看到这个提示的时候发现它们可能更注重里子

    AWS 计算云sagemaker中jupyter notebook有个功能Lsession超过12小时会提示重新new一个或关闭,很赞; AWS的页面第一次看见很丑陋,当今天看到这个提示的时候发现它们 ...

  2. php ci项目总结,分享关于php CI框架使用的一点小总结

    最近频繁使用CI框架,这里主要是关于后台的开发,重点分享关于Model和Controller层的一点点总结: 1.涉及到交互数据库,我们先在database.php总添加我们需要使用的数据库的连接信息 ...

  3. 作为面试官的一点小感想

    这两天公司要招大数据开发的人,让我去面试这些应聘者,几天下来面试的人也有10多个人了,这其中有应届生.刚工作不久的以及有一定年限的,学历有本科和研究生等.通过和这些人交谈后,心里也有一点小感触和小想法 ...

  4. C与C++在形参的一点小区别

    先看一下下面的代码: int fun(a,b) int a; int b; {return 10; }void main(int argc, char ** argv) {fun(10);return ...

  5. 函数的傅立叶展开掐死我吧_关于文章《傅里叶分析之掐死教程》的再一点小思考...

    封火星:关于文章<傅里叶分析之掐死教程>的一点小思考​zhuanlan.zhihu.com 以前的文章,从原理上更好的理解了原文中的一点,不过因为公式不是完全一样,从而有一个新问题不能解决 ...

  6. 微信小程序提示框提示

    微信小程序提示框很常见,有的项目弹出提示选择关闭的时候需要不再弹出,清理缓存的时候才弹出. var s = wx.getStorageSync('sh')if (s == '') {// s= tru ...

  7. 微信小程序 - 用户进入客服会话会在右下角显示可能要发送的小程序提示

    起因,看到了抽奖小助手的操作,如下截图 我就想 我去 这个吊啊  很懵逼 因为之前没见过 以为是服务端的操作 看了半天服务端文档并没有相关介绍,在微信社区遨游了半天发现了 原来就是小程序「buttun ...

  8. 对extern C的一点小认识

    对extern "C"的一点小认识 当我们想从C++中调用C的库时,(注,驱动是用C写的,连new.delete也不能用,郁闷)不能仅仅说明 一个外部函数,因为调用C函数的编译代码 ...

  9. 硬核,学习 Java 的一点小建议(思维导图,建议收藏)!

    CSDN 收到一条读者的私信,情真意切,所以我承诺他今天一定写篇文章好好回复他一下.先来看一下他的私信内容吧. 首先映入我的眼帘的是这个称呼--"老前辈",我一下子没忍住,笑了! ...

  10. 给计算机主机吹灰,电脑主机多久清理一次灰合理一些?一点小建议给你

    电脑主机多久清理一次灰合理一些?一点小建议给你 2020-02-20 15:14:21 7点赞 21收藏 24评论 前言: 电脑用着用着风扇狂转?显卡.CPU温度居高不下?服役多年的电脑主机变成了废旧 ...

最新文章

  1. 【开源】一键生成各种姿势的火柴人gif:在线录制真人视频即可转换
  2. 产品待办列表的几个最佳实践
  3. protobuf在go中的应用
  4. 我也来推荐一个强大的flash应用
  5. $.countdown is not a function
  6. java输入数据插入if_java编程,从键盘录入10个整数数据,将每次录入的数据按从小到大的顺序插入到数组中。...
  7. 苹果CMSv10官方版程序包
  8. 荣耀9X的AI得分第一:这只是达芬奇架构的冰山一角
  9. ICSharpCode.SharpZipLib 压缩、解压文件 附源码
  10. 为Web Service添加缓存
  11. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 G-旋转矩阵
  12. SAP 发票凭证反向冲销
  13. 惯性力偶矩公式中j_理论力学(I)习题详解达朗贝尔原理.pdf
  14. innosetup标准安装
  15. 国际短信发不出去是怎么回事?
  16. Visual Studio “无可用源“ 问题
  17. 湿敏电阻的原理,结构,分类与应用场景要点总结
  18. 计算机中术语中bit的含义是,bit的用法总结大全
  19. 数据分析师入门_数据分析师入门基础指南
  20. 网球初学者网球拍的推荐

热门文章

  1. 21点游戏java实现
  2. SQL SERVER2017 安装程序无法与下载服务器联系。无法安装机器学习服务的问题解决方式...
  3. 卸载列表信息——Uninstall注册表
  4. OTSU大津法对图像二值化
  5. Linux学习日志--共享内存
  6. Web负载均衡与分布式架构
  7. Android 6.0 扫描不到 Ble 设备需开启位置权限
  8. WordPress多语言插件
  9. 10-08 长假结束
  10. Silverlight WCF RIA服务(二十九)Silverlight 客户端 10