该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

endian.h头文件中以宏的形式定义了大端字节序、小端字节序和混合字节序

#define __LITTLE_ENDIAN 1234

#define __BIG_ENDIAN   4321

#define __PDP_ENDIAN   3412

并且宏__BYTE_ORDER确定了当下机器所采用的字节序,根据描述,这个宏定义在头文件bits/endian.h中

/* This file defines `__BYTE_ORDER' for the particular machine. */

#include 

但是在glibc源码中,bits/endian.h文件中,__BYTE_ORDER并没有提及。

对__BYTE_ORDER的定义是在类似./glibc-version/sysdeps/[...]/bits/endian.h的文件中的。

貌似是针对不同的平台情况分别进行定义。比如在./sysdeps/hppa/bits/endian.h中:

/* hppa1.1 big-endian. */

#define __BYTE_ORDER  __BIG_ENDIAN

可是,在我的红帽系统中,一系列的sysdeps目录没了,取而代之的是bits/endian.h中的定义:

/* i386/x86_64 are little-endian. */

#define __BYTE_ORDER  __LITTLE_ENDIAN

这里有两个不明白的地方:

1、源码中无内容的bits/endian,为什么在具体系统里面就有了具体内容?是通过定制,然后人工修改的么?

2、endian.h中的__BYTE_ORDER、__BIG_ENDIAN之类的宏我们可以自由使用么?虽然说用到的机会并不多。

尽管这个头文件是公开的,但是总感觉这东西好像只有编译器才能用的样子……

而且在中讲到了字节序的内容,但并没有提及endian.h头文件。

c语言中.h文件中的宏定义,endian.h这个头文件里面的宏可以直接用么?相关推荐

  1. C语言中:在头文件中使用static定义变量意味着什么?

    C语言中:在头文件中使用static定义变量意味着什么? 看到有一位同学在头文件中这么写: static const wchar_t* g_str1 = - static const wchar_t* ...

  2. c语言中引用头使用什么指令,在源文件(.c)和头文件(.h)中声明和定义的区别——C语言...

    最近在看多文件编程的时候遇到的一个问题,本来以为理解了声明和定义的区别(然而并没有····),也算是重新认识了一次声明和定义,下面上代码 声明和定义:有分配空间的叫定义,没分配空间的叫声明 定义:表示 ...

  3. go语言中fmt包中Print、Printf、Println输出相关函数的区别

    go语言中fmt包中Print.Printf.Println输出相关函数的区别 区别: Print系列函数将内容输出到系统的标准输出.其区别:Print函数式直接输出内容,Printf函数支持格式化输 ...

  4. java 中定义整形变量_智慧职教: 在Java语言中,一条语句可以定义多个变量。例如int a; b;就定义了两个整型变量a 和b。...

    智慧职教: 在Java语言中,一条语句可以定义多个变量.例如int a: b:就定义了两个整型变量a 和b. 答:0 "物的依赖性关系"是( ) 答:资本主义社会之中的人与人之间的 ...

  5. C语言中scanf()函数中的是什么

    困惑初学者的C语言中scanf()函数中的&到底是什么 对于初学者而言,肯定有过这样一个困惑:为什么在使用scanf函数输入数据时有时需要在参数前加一个&,而有时却不用. 在回答&qu ...

  6. c语言中for循环逗号表达式,c语言中for循环中()里的三个表达式分别省略都

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:c语言中for循环 中()里的三个表达式分别省略都是什么意思?回答:将参加循环的语句括起来:末尾循环体){ 中间循环体: } 其中, ...

  7. c语言数组中逗号的作用,在C语言中,每个语句和数据定义是用( )结束。? 逗号|括号|分号|句号...

    在C语言中,每个语句和数据定义是用( )结束.? 逗号|括号|分号|句号 更多相关问题 [多选题]有关商事登记的内容,下列表述哪些是不正确的: A. 商事登记不是取得商人资格的必备条件 B. 商事登记 ...

  8. java语言中类定义数组赋值_在Java语言中,下列对于字符数组的定义并赋值正确的是(选一项)_学小易找答案...

    [单选题]<茶花女--饮酒歌>这段音乐属于级进还是跳进的旋律? <茶花女-饮酒歌>.mp4 [简答题] [单选题]对外汉语教学中以系统讲授语言知识的一类课型,包括语音.词汇.语 ...

  9. 巧用c语言宏定义实现自动注释调试代码,C语言宏定义中的特殊用法

    C宏定义中的特殊用法 在分析一些C源码时,经常会遇到各种宏定义操作,本文即总结一下C语言宏定义中常见的预定义宏.调试宏:宏的条件编译用法及特殊的宏关键字用法. #undef 限定宏的作用域 一般来讲宏 ...

最新文章

  1. 【OpenCV 4开发详解】图像上绘制几何图形
  2. fastboot因为连接线影响出错
  3. 自考计算机应用技术实践考核,自考《计算机应用技术》实践环节指导
  4. 使用Module自定义网站定义(Site Definition)
  5. 直流有刷减速电机结构及其工作原理
  6. hooks组件封装 react_名符其实的react下一代状态管理器hox
  7. 主席树【bzoj3524(p3567)】[POI2014]Couriers
  8. opensource项目_Opensource.com的写作主题从A到Z
  9. Sql分页两种常用算法
  10. 数据库的相关语句(where,order by)
  11. NetSuite ERP软件系统特点介绍!
  12. android studio 中由于网络问题,编译错误
  13. 为什么这么多的广告呢
  14. Shell脚本初学习
  15. OSChina 周五乱弹 —— 闹钟一响就睡觉
  16. mysql union 慢_mysql查询慢的原因和解决方案
  17. 【玩转ElasticSearch】横向对比ElasticSearch与Sphinx
  18. 对于年龄偏小的孩子来讲,学习的好坏可能完全取决于家长
  19. F28335第十二篇——串口拓展(XR16C854)
  20. 服务器omv系统,开源NAS系统OpenMediaVault安装与体验

热门文章

  1. BCH正式升级,智能合约,逐梦而来!
  2. 【kudu pk parquet】TPC-H Query2对比解析
  3. docker清空为none的镜像
  4. [转]Hadoop家族学习路线图
  5. 解决Lync联盟用户之间只能IM聊天不能进行A/V呼叫问题
  6. spring (由Rod Johnson创建的一个开源框架)
  7. 三星台积电大笑 LG弃自研CPU英特尔代工遭重创
  8. Apache 配置关闭文件目录浏览
  9. .NET程序性能的基本要领
  10. 删除Referencing outlet