首页 > 代码库 > 一起talk C栗子吧(第一百二十四回:C语言实例--内置宏)

一起talk C栗子吧(第一百二十四回:C语言实例--内置宏)


各位看官们,大家好,上一回中咱们说的是显示变量和函数地址的样例,这一回咱们说的样例是:内置宏。闲话休提,言归正转。让我们一起talk C栗子吧!

看官们,我们在编译程序的时候,假设有语法错误,编译器就会提示,在某个文件的某一行有错误,这是怎么做到的呢?事实上是使用了C语言的内置宏。

说到宏,我想大家都知道,而所谓的内置宏相似于C语言的关键字,它是C语言自定义的,因此我们不须要定义宏,就能够直接使用。经常使用的内置宏有_LINE_”和“_FILE_。假设把它们放到代码中,那么能够输它们所在位置的行号和所在的文件名称。编译器输出错误的文件名称和行号时就使用了它们。

事实上,它们经常被用来在文件里加入调试信息。由于我们写的程序难免会有错误,所以须要对程序进行调试。在文件里加入内置宏后,我们通过调试能够高速地找到发生错误在哪个文件里的哪一行。

这样就能够高速改动程序中的错误,进而提高了工作效率。

看官们,我们举一个简单的样例。来说明内置宏的使用方法,以下是具体的代码请大家參考:

#include<stdio.h>

int show()
{
     printf("hello \n");

    printf("file:%s line:%d  \n",__FILE__,__LINE__);
    return 0;
}

int main()
{
    printf("file:%s line:%d  \n",__FILE__,__LINE__);
    show();

    return 0;
}

我们在代码中通过内置宏来输出当前的文件名称和行号。以下是程序的执行结果,请大家參考:

file:test.c line:13   //这是main函数中的内容
hello 
file:test.c line:7    //这是show函数中的内容

各位看官,关于内置宏的样例咱们就讲到这里。欲知后面还有什么样例。且听下回分解 。


<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

一起talk C栗子吧(第一百二十四回:C语言实例--内置宏)