
C语言
蚂蚁de臂膀
一般一般
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
对指针的初步理解
一、指针参与赋值操: *p放在等号的左边赋值(给内存赋值) *p放在等号的右边取值(从内存获取值) 二、指针一些特性: 1、指针的步长,根据所指内存空间类型来定。例如:char* ps ;它的步长ps+1 是 1。int* p;它的步长p+1 是 4。 2、建立指针指向谁,就把把谁的地址赋值给指针。 3、不转载 2015-09-19 20:36:40 · 330 阅读 · 0 评论 -
__attribute__编译属性---section
要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性,__attribute__主要用于改变所声明或定义的函数或数据的特性,它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联扩展、noreturn表示没有返回值、pure表明函数除返回值外,不会通过其它(如全局变量、指针)对函数外部产生任何影响。但这里我们比较感兴趣的是对代转载 2016-11-27 16:28:37 · 7311 阅读 · 0 评论 -
__attribute__ 之weak,alias属性 .
Weak Alias 跟 Weak Reference 完全没有任何关系,不过是我在看到 Weak Reference 的时候想到的而已。 Weak Alias 是 gcc 扩展里的东西,实际上是函数的属性。这个东西在库的实现里面可能会经常用到,比如 glibc 里面就用了不少。抄录一段 gcc 手册里面的话解释下函数属性是干啥的, In GNU C, you declare转载 2016-11-27 15:58:58 · 696 阅读 · 0 评论 -
__ATTRIBUTE__
__ATTRIBUTE__ 你知多少? GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。 __attribute__ 书写特征是:__attribute__ 前后都有两个下划线,并切后面会紧跟转载 2016-11-27 15:46:35 · 410 阅读 · 0 评论 -
LinuxServer开机自动登录和自启动程序设置
1. 概述 linux服务器已被广泛使用,大多情况下都可以稳定的运行。但是不排除因其他外在因素例如断电等原因而导致的关机。如果在没有运维或者运维临时无法及时维护时,那么server的自启动程序就显得尤为重要了。 2. Linux Server设置 2.1 供电自启动 主机在意外情况下断电后关闭,当恢复供电希望主机自行启动。可在主机BIOS中进行设置,一般机器都会支持。不转载 2016-05-18 12:59:49 · 1383 阅读 · 0 评论 -
C语言中,二级指针的三种内存模型
二级指针的三种内存模型: 对每种模型进行排序和打印.从中理解二级指针的在内存中的模型建立. 第一种: 指针数组模型 char* pArray[ ] = {"aaaaaa","bbbbbb","cccccc","dddddd"};原创 2015-09-22 21:19:24 · 554 阅读 · 0 评论 -
运算符优先级 和 结合性 总结与背记口诀
C语言中运算符的优先级一共分为15级,1级最高,15级最低。在有多个不同的运算符出现的表达式中,优先级高的先运算,优先级低的后运算。 结合性:C语言中结合性有两种,左结合性 与 右结合性; 左结合性:该操作数先与左边的运算符相结合; 右结合性:该操作数先与右边的运算符相结合。 背记运算符优先级的口诀: 括号一,单原创 2015-09-21 18:52:27 · 1031 阅读 · 0 评论 -
字符串简单理解
一、字符串: 1、C语言中字符串是以 /0 结尾的; 2、C语言中没有字符串类型,用字符数组来模拟字符串; 3、字符串分配内存 可以是 栈区、堆区、或者全局区; 二、字符数组的初始化: 1、固定长度 例如:char buf[4 ] = {'a','b','c','d'}; //结尾没有‘/0’ 不是C风格 2、不固定长度:原创 2015-09-20 21:18:08 · 475 阅读 · 0 评论 -
关于C语言中数据类型的转化方式
尽量每一天都写一边博客,这样也属于对自己所学的进行强化。希望能坚持下去。 关于数据类型的转换方式: 主要分为两种方式: 一、自动转换:是没有认为的进行转换的情况下,编译器按照规定的编译方式进行的数据类型的转换。按一下规则: 1、不同的数据类型进行运算时,要先转换成同一类型进行运算。 2、编译器按照长度增长的方向进行转换。如 int类型和long int 类型,原创 2015-09-17 22:20:13 · 973 阅读 · 0 评论 -
从内存和内存的分区的角度来理解数据类型 、变量、指针。
一、什么事数据类型? 数据类型可以理解为是 代表一定大小的内存块的别名。 例如:整型 int ,他代表的是固定大小为4个byte的内存块;short 是固定1 byte 的内存块。 当我们使用内存的时候,就会去内存空间去申请相应大小的内存块。 例如:int num = 1; 我们理解为在内存空间里申请了4 byte 大小的内存块 来存放数值 1.(那nu原创 2015-09-18 16:22:17 · 636 阅读 · 0 评论 -
static关键字的作用(精辟分析)
static的作用(精辟分析) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。 下面是a.c的内容转载 2015-09-19 21:17:10 · 471 阅读 · 0 评论 -
GCC在C语言中内嵌汇编 asm __volatile__
在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作。 1、简单的内嵌汇编 例: __asm__ __volatile__("hlt"); "__asm__"表示后面的代码为内嵌汇编转载 2016-11-27 17:33:31 · 490 阅读 · 0 评论