c语言file_C语言编程第20讲——几个有用的编译时才确定值的符号
在C语言编程中,有五个符号,它们的值在编译时,才由编译器替换成常量值,对程序员非常有用。
1、__STDC__
如果编译器支持标准C语言,则将__STDC__变为1,否则变为0。
例如下面的代码:
#include int main(){ if (__STDC__) { printf("Compiler supports standard C."); } else { printf("Compile does not support standard C."); } return 0;}
使用gcc编译后运行的情况为:
Compiler supports standard C.
2、__DATE__和__TIME__
编译器在编译程序时,碰到__DATE__,会替换成当前的日期,碰到__TIME__,会替换成当前的时间。
例如下面的代码:
#include int main(){ printf("Date: %s, time: %s", __DATE__, __TIME__); return 0;}
编译之后的运行结果是:
Date: May 2 2020, time: 01:05:58
__DATE__和__TIME__常常用来标识软件的生成时间。
3、__FILE__和__LINE__
编译器在编译程序时,碰到__FILE__,会替换成源文件名,碰到__LINE__,会替换成所编译代码在当前源文件中的行号。
例如下面的代码:
#include int main(){ printf("%s (%d), hello.", __FILE__, __LINE__); return 0;}
程序编译之后运行的结果为:
test.c (6), hello.
c语言file_C语言编程第20讲——几个有用的编译时才确定值的符号相关推荐
- c语言file_C语言 技能提升 系列文章(七)格式化输入/输出
当初大家入门学习C语言的时候,面对一个黑黑的命令行界面,仅有的交互方法只有printf/scanf这两个函数作为输入输出.但是,大家知道吗?这两个函数后面还有很多兄弟姐妹.那就是C语言的格式化输入输出 ...
- c语言file_C语言程序的编译和调试
1.gcc编译器-熟练使用 gcc(GNU Compiler)是GNU推出的多平台编译器,可以将C.C++源程序编译连接成可执行文件,支持后缀如下: 后缀备注.cc语言源代码文件.h程序所包含的头文件 ...
- 【编程基础の基础】“#define _GNU_SOURCE“或是在编译时“-D _GNU_SOURCE“代表了什么?有什么用
概念 详细的信息可查看Linux手册 man feature_test_macros 从GNU的文档中: Macro: _GNU_SOURCE If you define this macro, ev ...
- C语言多文件编程基本格式
1.背景: 用一个丢骰子的简单案例熟悉了C语言多文件编程该咋写 2.格式 (1)主函数文件main.c //文件头part1:所有要使用的函数#include ;#include ;#include ...
- 用C语言进行Windows编程入门
用C语言进行Windows编程入门 本文对一般教程或网上有的(如C语言语法等基础)不深入介绍,对初学者易造成疑惑误解或难以找到的内容进行较详尽的介绍. 学习C语言很久了,一直面对控制台应用程序(Win ...
- 浅谈C语言嵌入式系统编程注意事项
C语言嵌入式系统编程注意事项之背景篇 本文的讨论主要围绕以通用处理器为中心的协议处理模块进行,因为它更多地牵涉到具体的C语言编程技巧 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上 ...
- 视频教程-C语言及程序设计提高视频精讲-C/C++
C语言及程序设计提高视频精讲 烟台大学计算机学院教师,二十年余教师生涯,看出了在错综复杂的教育环境中,坚持教育教学的价值与前景.和学生并肩,与不良学风作斗争,为IT菜鸟建跑道,让大一的孩子会编程,为迷 ...
- C语言嵌入式系统编程修炼(经典中的经典)
C语言嵌入式系统编程修炼 http://blog.chinaunix.net/u/25764/showart_326589.html转载自这里,真是太经典了. C语言嵌入式系统编程修炼 ...
- C语言嵌入式系统编程注意事项
不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力.无疑, 汇编语言 具备这样的特质.但是,归因于汇编语言开发过程的复杂性,它并不是 嵌入式系 ...
最新文章
- C/C++在不确定输入字符串长度情况下,对其进行存储和字符操作问题
- redis bitmap
- Eclipse上GIT插件EGIT使用手册
- 【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )
- 移动硬盘磁盘结构损坏且无法读取要怎样办啊
- 阿里云:面向5G时代的物联网无线连接服务
- 东哥读书小记 之 《一个广告人的自白》
- centos7.4 mysql启动,centos7下mysql服务启动失败_网站服务器运行维护,centos7,mysql
- linux 挂载和网络命令
- mysql 自动生成mapper_Spring Boot整合mybatis并自动生成mapper和实体实例解析
- Pspice轨迹命令
- 使用电脑小技巧70个
- 函数判断闰年:输入年份 判断此2月份的天数
- 秒搜编程好书 就用这个Python写的爬虫网站
- ng-bind、ng-value和ng-model
- Java 中多态的概念以及前提条件
- html留言板原理,js实现留言板
- 数据库关系运算:自然连接,投影,交,除,并
- Linux -- SELinux配置及应用(1)
- NCCL源码解析②:Bootstrap网络连接的建立