gnu 扩展之#和##】的更多相关文章

Obstack是C标准库里面对内存管理的GNU扩展 Obstack介绍 Obstack初始化 在Obstack中申请对象 释放对象 申请growing object 获取Obstack状态 数据对齐 以下是来自wiki对obstack的介绍: Obstack是C标准库里面对内存管理的GNU扩展(实际上就是GNU C library了).Obstack===Object stack.没错,Obstack就是一个栈,栈里面的元素是对象object(不是面向对象的对象哦,这里的对象单指数据元素).这些…
转自:http://chongsoft.bokee.com/5816474.html 今天测试了宏定义中的 "#" 和 "##" 的区别. 结果如下: "#"  代表和一个字符串相连接 "##"  代表和一个符号连接,符号可以是变量,或另一个宏符号. 举例如下: 宏定义如下 (1) #define DEV_FILE_NAME    "/dev/test_kft" #define OPEN_FILE(fd,…
GNU CC 是一个功能非常强大的跨平台 C 编译器,它对 C 语言提供了很多扩展,这些扩展对优化.目标代码布局.更安全的检查等方面提供了很强的支持.这里对支持支持 GNU 扩展的 C 语言成为 GNU C. 在 Linux 内核中使用了大量的 GNU C 扩展,以致 GNU C 成为了内核唯一的编译器. 1.语句表达式 GNU C 把包含在括号中的复合语句看做是一个表达式,称为语句表达式,它可以出现在任何允许表达式的地方,你可以在语句表达式中使用循环.局部变量等,原本只能在复合语句中使用.例如…
gcc核心扩展linuxforum(转)=========================== Linux 内核使用的 GNU C 扩展 =========================== GNC CC 是一个功能非常强大的跨平台 C 编译器,它对 C 语言提供了很多扩展, 这些扩展对优化.目标代码布局.更安全的检查等方面提供了很强的支持.本文把 支持 GNU 扩展的 C 语言称为 GNU C. Linux 内核代码使用了大量的 GNU C 扩展,以至于能够编译 Linux 内核的唯一编 译…
GNU 是一款能用于构建类 Unix 操作系统的计算机软件合集,由自由软件之父 Richard Stallman 开创,于 1983 年 9 月 27 日对外发布.GNU 完全由自由软件(free software)构成. GNU 语法扩展源自于 GCC 编译器,在 1987 年发布 1.0 版本,称为 GNU C Compiler.随后,GCC 编译器前端支持了 C++.Objective-C/C++.Fortran.Ada.Java 以及最近跃升的 Go 等编程语言,因此现在 GCC 被称为…
C 语言在 Linux 系统中的重要性自然是无与伦比.不可替代,所以我写 Linux 江湖系列不可能不提 C 语言.C 语言是我的启蒙语言,感谢 C 语言带领我进入了程序世界.虽然现在不靠它吃饭,但是仍免不了经常和它打交道,特别是在 Linux 系统下. Linux 系统中普遍使用的是 GNU-C,这里有一份Gnu-C语言手册.pdf.The GNU C Reference Manual 的主页在这里:http://www.gnu.org/software/gnu-c-manual/.C 语言的…
1.线程安全宏定义 在TSRM/TSRM.h文件中有如下定义 #define TSRMLS_FETCH() void ***tsrm_ls = (void ***) ts_resource_ex(0, NULL) #define TSRMLS_FETCH_FROM_CTX(ctx) void ***tsrm_ls = (void ***) ctx #define TSRMLS_SET_CTX(ctx) ctx = (void ***) tsrm_ls #define TSRMG(id, type…
简 介 英文版下载: PHP 5 Power Programming PHP取得成功的一个主要原因之一是她拥有大量的可用扩展.web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到.PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内的许多扩展. 扩展API的引入使PHP3取得了巨大的进展,扩展API机制使PHP开发社区很容易的开发出几十种扩展.现在,两个版本过去了,API仍然和PHP3时的非常相似.扩展主要的思想是:尽可能的从扩展编写者那里隐藏PHP的内部机制和脚本…
国际标准组织发布c11后,gnu为自己的编译器发布两种标准gnu11和c11 gnu11:带gnu c扩展的c11标准,如果你的代码包含了typeof,__attribute__等等gnu的扩展,就必须用这个. c11:这个就是纯c11的标准,不带gnu扩展. 可以在Makefile中声明: CFLAGS=-std=gnu11 -g -Wall 或者,纯标准的c11,玩linux的要慎用,因为linux代码到处都是gnu的痕迹哦,哈哈 CFLAGS=-std=c11 -g -Wall 如何改变M…
英文版下载: PHP 5 Power Programming http://www.jb51.net/books/61020.html PHP取得成功的一个主要原因之一是她拥有大量的可用扩展.web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到.PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内的许多扩展. 扩展API的引入使PHP3取得了巨大的进展,扩展API机制使PHP开发社区很容易的开发出几十种扩展.现在,两个版本过去了,API仍然和PHP3时的非常相似.扩…
PHP取得成功的一个主要原因之一是她拥有大量的可用扩展.web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到.PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内的许多扩展. 扩展API的引入使PHP3取得了巨大的进展,扩展API机制使PHP开发社区很容易的开发出几十种扩展.现在,两个版本过去了,API仍然和PHP3时 的非常相似.扩展主要的思想是:尽可能的从扩展编写者那里隐藏PHP的内部机制和脚本引擎本身,仅仅需要开发者熟悉API. 有两个理由需要自己编写PHP扩…
本文翻译自GNU关于GCC7.2.0版本的官方说明文档,第6.45.2小节.供查阅讨论,如有不当处敬请指正…… 通过扩展asm,可以让你在汇编程序中使用C中的变量,并从汇编代码跳转到C语言标号.在汇编程序模板之后,扩展asm语法使用冒号“:”来界定操作参数. asm [volatile] ( 汇编程序模板 : 输出操作数 : 输入操作数 : 互斥项 ) asm [volatile] goto ( 汇编程序模板 : : 输入操作数 : 互斥项 : 跳转标号) “asm”是GNU扩展关键词,如果要使…
GCC 1 Section: GNU Tools (1) Updated: 2003/12/05 Sponsor: GCC Casino Winning Content NAME gcc,g++-GNU工程的C和C++编译器(egcs-1.1.2) 总览(SYNOPSIS) gcc[option|filename ]... g++[option|filename ]... 警告(WARNING) 本手册页内容摘自GNU C编译器的完整文档,仅限于解释选项的含义. 除非有人自愿维护,否则本手册页不…
总览 (SYNOPSIS) gcc [ option | filename ]... g++ [ option | filename ]... 警告 (WARNING) 本手册页 内容 摘自 GNU C 编译器 的 完整文档, 仅限于 解释 选项 的 含义. 除非 有人 自愿 维护, 否则 本手册页 不再 更新. 如果 发现 手册页 和 软件之间 有所矛盾, 请 查对 Info 文件, Info 文件 是 权威 文档. 如果 我们 发觉 本手册页 的 内容 由于 过时 而 导致 明显 的 混乱…
GNU的date提供+%s(小写s), 能打印出自1970-01-01 00:00:00到当前时间的秒数. 这可能大家都不陌生,但有两点需要注意: 1. %s存在于GNU扩展版本.像在solaris等UNIX上没有该参数. 2. 1970-01-01 00:00:00指的是UTC时间. (date -u得出来的时间) 协调世界时,又称世界标准时间,简称UTC 整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Un…
http://www.ibm.com/developerworks/cn/linux/kernel/startup/index.html Linux启动第1步:引导内核 Linux启动第2步:内核部分的初始化 [ start_kernel() ] Linux启动第3步:在内核中初始化外设(硬件+驱动)[ do_basic_setup().do_initcalls() ] Linux启动第4步:进程和inittab引导指令 Linux启动第5步:rc启动脚本 Linux启动第6步:getty和lo…
转载:http://www.cnblogs.com/fzhe/archive/2012/11/06/2757858.html C语言获取系统时间的几种方式   C语言中如何获取时间?精度如何? 1 使用time_t time( time_t * timer ) 精确到秒2 使用clock_t clock() 得到的是CPU时间 精确到1/CLOCKS_PER_SEC秒3 计算时间差使用double difftime( time_t timer1, time_t timer0 )4 使用DWORD…
sed sed对文本的处理很强大,并且sed非常小,参数少,容易掌握,他的操作方式根awk有点像.sed按顺序逐行读取文件.然后,它执行为该行指定的所有操作,并在完成请求的修改之后的内容显示出来,也可以存放到文件中.完成了一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到它完成该文件.在这里要注意一点,源文件(默认地)保持不被修改.sed 默认读取整个文件并对其中的每一行进行修改.说白了就是一行一行的操作.我用sed主要就是用里面的替换功能,真的很强大.下面以实例,详细的说一下,先从替…
=========================================================本使用说明与 把VIM打造成IDE 配套=========================================================0 快捷键和命令F1       ---  帮助F2       ---  移动到下一标签F3       ---  在工程中查找F4       ---  全部退出F5       ---  全部保存F6       ---  代…
      在阅读GNU/Linux内核代码时,我们会遇到一种特殊的结构初始化方式.该方式是某些C教材(如谭二版.K&R二版)中没有介绍过的.这种方式称为指定初始化(designated initializer).下面我们看一个例子,Linux-2.6.x/drivers/usb/storage/usb.c中有这样一个结构体初始化项目: static struct usb_driver usb_storage_driver = { .owner = THIS_MODULE, .name = &qu…
一.GCC编译过程 参考:http://hi.baidu.com/zengzhaonong/item/c00e079f500adccab625314f-------------------------------------    Pre-Processing   cpp        预处理    Compiling        ccl        编译    Assembling       as         汇编    Linking          ld         链接…
GCC 1 NAME gcc,g++-GNU工程的C和C++编译器(egcs-1.1.2) 总览(SYNOPSIS) gcc[option|filename ]... g++[option|filename ]... 警告(WARNING) 本手册页内容摘自GNU C编译器的完整文档,仅限于解释选项的含义. 除非有人自愿维护,否则本手册页不再更新.如果发现手册页和软件之间有所矛盾,请查对Info文件, Info文件是权威文档. 如果我们发觉本手册页的内容由于过时而导致明显的混乱和抱怨时,我们就停…
今天在工作时,看到了奇葩的结构体初始化方式,于是我查了一下C99标准文档和gcc的说明文档,终于搞清楚是怎么回事了. 假设有如下结构体定义: typedef struct { int a, b, c; } MyStruct; 那么结构体的初始化方式如下有三种: (1) C89的初始化方式 MyStruct test = {, , }; 这种初始化的优点是语法简单,无需输入变量名:缺点是成员变量的初始化顺序必须与声明的一致,无法乱序初始化. (2) C99新增的“指定初始化列表”(designat…
操作系统课程设计选题  驱动程序的编写和安装. 经过一天多的努力,终于把我的第一个驱动程序模块成功编写并实现插入内核和移除,在这里把过程记录下来方便以后查看,也给其他为之困扰的朋友一个建议. 环境:  windows 7 下 VMware 9.0 中装  Ubuntu12.04 内核版本为3.5.0-32-generic  搭建驱动开发环境: 相应版本的 gcc.gdb.make . 内核源代码树.在Ubuntu 下内核源代码一般存放在  /usr/src/ 下. 我的Ubuntu /usr/s…
gnu coreutils https://www.gnu.org/software/coreutils/manual/coreutils.html#toc_Printing-text 目录列表 https://www.gnu.org/software/coreutils/manual/coreutils.html#File-permissions 文件权限被包括在coreutils包中. http://blog.sina.com.cn/s/blog_8a41719c0100wf98.html …
The History of GCC 1984年,Richard Stallman发起了自由软件运动,GNU (Gnu's Not Unix)项目应运而生,3年后,最初版的GCC横空出世,成为第一款可移植.可优化.支持ANSI C的开源C编译器.GCC最初的全名是GNU C Compiler,之后,随着GCC支持的语言越来越多,它的名称变成了GNU Compiler Collection.这里介绍的gcc是GCC的前端,C编译器. 警告信息     -Wall : 显示所有常用的编译警告信息. …
C和C++ 编译器是集成的.他们都要用四个步骤中的一个或多个处理输入文件: 预处理 (preprocessing),编译(compilation),汇编(assembly)和连接(linking).源文件后缀名标识源文件的 语言,但是对编译器来说,后缀名控制着缺省设定: gcc  认为预处理后的文件(.i)是C文件,并且设定C形式的连接. g++  认为预处理后的文件(.i)是C++ 文件,并且设定C++ 形式的连接. 源文件后缀名指出语言种类以及后期的操作: .c      C源程序;预处理,…
C语言获取系统时间的几种方式 C语言中如何获取时间?精度如何? 1 使用time_t time( time_t * timer ) 精确到秒 2 使用clock_t clock() 得到的是CPU时间 精确到1/CLOCKS_PER_SEC秒 3 计算时间差使用double difftime( time_t timer1, time_t timer0 ) 4 使用DWORD GetTickCount() 精确到毫秒 5 如果使用MFC的CTime类,可以用CTime::GetCurrentTim…
Xcode 本文是自<Clang Language Extensions> 中选取部分与 Objective-C 相关的内容翻译,由于作者水平有限,如存在理解错误或翻译不到位的地方,还请指正! 特性检查宏(Feature Checking Macros) __has_builtin 此函数类型的宏传递一个函数名作为参数来判断该函数是否为内置函数. #ifndef __has_builtin // Optional of course. #define __has_builtin(x) 0 //…
php进行中文字符串的截取时,会经常用到二个函数iconv_substr和mb_substr,对这二个函数应该如何选择呢?参考下本文介绍的例子就明白了. 示例代码,用到了函数substr与iconv_substr,mb_substr <html> <head><meta charset='utf-8'> <title>截取中文字符串_脚本学堂_www.jbxue.com</title> </head> <body> <…