• C专家编程 第1章 C:穿越时空的迷雾 1.11 轻松一下---由编译器定义的Pragmas效果


    /*轻松一下---由编译器定义的Pragmas效果*/
    /*Free Software Foundation, FSF) 自由软件基金会
     *MIT顶级黑客Richard Stallman创立(天才程序员) 
     *初衷:软件应该是免费的,所有人都可以自由使用。
     *宗旨:消除在计算机程序复制、重发布、理解和修改方面的限制
     *建立一个UNIX的自由软件实现方案,称为GUN(代表GUN's Not UNIX)。
     *作品:GUN C编译器系列
     *gcc是一个在代码优化方面具有创造性的健壮的编译器,可以在很多硬件平台使用, 
     *有时甚至比编译器厂商的产品更为优秀 
     */
    /*
     *指定ANSI C标准时,引入了pragma指示符,这个指示符来源于Ada
     *#pragma作用:用于向编译器提示一些信息,诸如希望把某个特定函数扩展为内联函数,或者
     *取消边界的检查。由于它并非C语言所固有,pragma遭到了一个gcc编译器设计者的积极抵制。 
     */ 
    /*
     *#pragma指示符的行为是由编译器定义的
     *在GUN C编译器中,它的定义如下:
     */
    do_pragma() {
        close(0);
        if (open("/dev/tty", O_RDONLY, 0666) != 0)
            goto nope;
        close(1);
        if (open("/dev/tty", O_    WRONLY, 0666) != 1)
            goto nope;
        //运行hack游戏 
        exel("/usr/games/hack", "#pragma", 0);  
        //运行rogue游戏 
        exel("/usr/games/rogue", "#pragma", 0);
        //运行GUN emacs 
        exel("/usr/new/emacs", "-f", "hanoi", "9", "-kill", 0);
        exel("/usr/local/emacs", "-f", "hanoi", "9", "-kill", 0);
        //报告致命错误 
        nope: 
        fatal("you are in a maze of twisty compiler features, all different")

  • 相关阅读:
    多重视窗管理程序 screen
    【MySQL数据库】(二)SQL
    IMX6ULL学习笔记(4)——安装并使用交叉编译工具链
    中英文说明书丨CalBioreagents艾美捷甲型流感病毒单克隆抗体
    orcale 大表物理删除字段时间太慢
    数据治理实战——翼支付金融板块业务数仓建设和数据治理之路
    常用设计模式
    软件系统设计
    下载离线地图地形数据库(3D离线地图开发)
    SQL注入作业
  • 原文地址:https://blog.csdn.net/weixin_40186813/article/details/126070018