`
mmdev
  • 浏览: 13330221 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

C语言编译器的预定义符号

阅读更多
C语言编译器的预定义符号
__LINE__ 当前(源代码文件)行号 [整数]
__FILE__ 当前正在编译的文件的文件名 [字符串]
__DATE__ 当前日期,以“月月 日日 年年年年”的形式给出 [字符串]
__TIME__ 当前时间,以“HH:mm:ss”的格式给出 [字符串]
__STDC__ 如果编译器符合ANSI C标准,该宏为1,否则为0
__STDC_HOSTED__ 如果实现了所有C标准库,该宏为1,否则为0
__STDC_VERSION__ 被定义为199901L(不同编译器可能不一样,比如我用的gcc里就没有这个预定义符号)
注:这些预定义符号的首尾为两个下划线,如果是两个单词,中间以一个下划线连接。
如果在源代码中使用了这些符号,它们会在预处理时被转换(使用gcc编译器的 -E 选项可以看到替换后的值)
C标准里还在每个函数内预定义了一个标志符: __func__
它被定义为 static const char __func__[]="function-name";
即不能在程序内对__func__赋值,也不能改变它所指向的字符串(函数名),否则报编译错误
注:__func__是个标志符,它在预处理阶段不被替换,所以使用gcc -E 是看不到任何效果的。
例:test.c
int main(){
printf("%s %s\n",__FILE__,__func__);
return 0;
}
输出: test.c main
分享到:
评论

相关推荐

    C语言编译器的详细代码

    C语言编译器是将C源代码转换成可执行机器码的程序,它的设计与实现是计算机科学领域的重要组成部分,涉及到编译原理、语法分析、语义分析等多个方面。对于初学者来说,理解编译器的工作流程和核心概念,不仅可以深化...

    C语言编译器源代码.rar

    C语言编译器是计算机科学领域的一个重要组成部分,它负责将C语言的源代码转换成机器可以理解的二进制代码。源代码是程序员用高级语言(如C语言)书写的程序,而编译器是连接这些源代码与硬件执行之间的桥梁。在深入...

    C语言编译器源代码

    C语言的语法遵循一套预定义的语法规则,即上下文无关文法(Context-Free Grammar)。语法分析器的任务是验证输入的标记序列是否符合这些规则,并构建相应的解析树。 然后是语义分析(Semantic Analysis),这一阶段...

    简单c语言编译器代码

    根据给定的文件信息,我们可以深入探讨C语言编译器的核心概念、结构和实现细节。以下是对标题“简单C语言编译器代码”及其描述、标签和部分内容的详细解析: ### C语言编译器的基本原理 编译器是将源代码(如C语言...

    C语言编译器基本代码.rar_Basic Compiler_C语言 编译器_C语言编译器_编译器C语言

    C语言编译器是将C源代码转换成机器可执行代码的关键工具,它涉及了编译原理中的多个重要概念和技术。这些概念包括词法分析、语法分析、语义分析、中间代码生成、优化以及目标代码生成。在提供的压缩包文件中,我们...

    yacc开发的c语言编译器

    《使用YACC开发C语言编译器》 在编程领域,编译器是连接源代码与机器可执行代码的关键桥梁。YACC(Yet Another Compiler-Compiler)是一个用于生成解析器的工具,它允许开发者根据语法规则定义来构建编译器或解释器...

    基于java实现的C语言编译器.zip

    《基于Java实现的C语言编译器》 在软件开发领域,编译器扮演着至关重要的角色,它将高级语言转换为机器可执行的代码。本项目“基于Java实现的C语言编译器”旨在探讨如何利用Java语言来构建一个能够理解和转化C语言...

    c语言编译器源代码

    C语言编译器是将C语言源代码转换成机器可执行代码的关键工具,它的源代码对于深入理解编译原理和程序语言的底层运作至关重要。在编程领域,掌握编译器的工作原理有助于提升软件开发的效率和质量。C语言编译器源代码...

    编译原理课程设计 java实现c语言编译器(源码+报告).rar

    《基于Java实现C语言编译器的深度剖析》 在计算机科学领域,编译器扮演着至关重要的角色,它将高级编程语言转换为机器可理解的指令,使得跨平台开发成为可能。本项目以“编译原理课程设计:Java实现C语言编译器”为...

    用纯C语言写成的C语言编译器源代码

    《深入理解C语言编译器:ucc162源代码解析》 在计算机科学领域,编译器扮演着至关重要的角色,它将高级语言转换为机器可执行的指令。本篇将围绕“用纯C语言写成的C语言编译器源代码”这一主题,深入探讨ucc162...

    C语言编译器的设计开发-- 字节代码格式设计与实现

    《C语言编译器的设计开发-- 字节代码格式设计与实现》 编译器是现代计算机科学中的核心组件,它们负责将高级编程语言(如C语言)转换为计算机可以直接执行的机器码。编译器的存在使得程序员无需关注底层硬件细节,...

    c语言编译器

    C语言编译器是将C源代码转换成机器可执行代码的程序,它是软件开发中的重要工具。在深入探讨C语言编译器的实现之前,我们先理解一下编译器的基本工作流程,它通常分为以下几个阶段:词法分析、语法分析、语义分析...

    c语言编译器源码

    C语言编译器是将C源代码转换成可执行机器代码的程序,它的源码对于我们深入理解计算机编程语言的编译过程至关重要。本主题主要围绕C语言编译器的源码,探讨编译器的基本原理、编译过程以及ucc这个特定的C编译器。 ...

    小型C语言编译器.zip

    《小型C语言编译器深度解析》 C语言是一种广泛应用的高级编程语言,以其简洁、高效和灵活性著称。小型C语言编译器是将C语言源代码转换为机器可执行代码的工具,其设计与实现是计算机科学中的一个重要课题。在本文中...

    ucc开源c语言编译器1.20源代码,含中文说明文档

    《ucc开源C语言编译器1.20:探索与学习之旅》 ucc开源C语言编译器1.20版本的发布,为广大的编程爱好者提供了一个宝贵的资源,不仅包含源代码,还附带了中文说明文档,使得学习和理解编译器的工作原理变得更加亲民。...

    编译原理c语言编译器

    在这个主题中,我们主要关注C语言编译器的构建,这是一种用C语言实现对C语言子集的编译程序的过程。这个过程通常包括三个关键步骤:词法分析、语法分析和语义分析。 首先,词法分析(也称为扫描或标记)是编译器的...

    c语言编译器(python版)使用python语言编写的c语言编

    C语言编译器是将C源代码转换成可执行程序的工具,而“C语言编译器(Python版)”则是使用Python编程语言实现的这样一个编译器。这个特殊的项目展示了如何利用Python来构建一个基本的编译器,这对于学习编译原理和...

    c语言编译器(python版)使用python语言编写的c语言编译

    C语言编译器(Python版)是一个创新的项目,它使用Python编程语言来实现一个能够解析和编译C语言源代码的工具。这样的编译器通常被称为“源到源”编译器,因为它将C语言的源代码转换为另一种形式的源代码,可能是...

Global site tag (gtag.js) - Google Analytics