当前位置:网站首页>C专家编程 第1章 C:穿越时空的迷雾 1.11 轻松一下---由编译器定义的Pragmas效果
C专家编程 第1章 C:穿越时空的迷雾 1.11 轻松一下---由编译器定义的Pragmas效果
2022-08-03 16:09:00 【weixin_客子光阴】
/*轻松一下---由编译器定义的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")
}
边栏推荐
猜你喜欢
随机推荐
13、OOM模拟
DataGrip数据仓库工具
Difference and performance comparison between HAL and LL library of STM32
MATLAB | 一种简易的随机曼陀罗图形生成函数
土耳其国防部:联合协调中心将对首艘乌克兰粮船进行安全检查
uniapp的webview滑动缩放
袁小林:沃尔沃专注于出行的安全感,并且把它做到极致
Detailed explanation of ReentrantReadWriteLock
83. Remove Duplicates from Sorted List
Small Tools (4) integrated Seata1.5.2 distributed transactions
MySQL窗口函数 PARTITION BY()函数介绍
【翻译】关于扩容一个百万级别用户系统的六个课程
Kubernetes 笔记 / 入门 / 生产环境 / 容器运行时
字典表(还需要输入2个字)
一文看懂推荐系统:召回01:基于物品的协同过滤(ItemCF),item-based Collaboration Filter的核心思想与推荐过程
[Unity Getting Started Plan] Basic Concepts (8) - Tile Map TileMap 02
如何启动 NFT 集合
WordPress建站技术笔记
全新探险者以40万的产品击穿豪华SUV价格壁垒
Why do I strongly recommend using smart async?