加载中
Linux驱动中mmap内存映射详解

mmap在linux哪里? 什么是mmap? 上图说了,mmap是操作这些设备的一种方法,所谓操作设备,比如IO端口(点亮一个LED)、LCD控制器、磁盘控制器,实际上就是往设备的物理地址读写数据。 但是,...

void类型和void* 的用法

C语言中的void 和 void * 总结 1、void的作用   c语言中,void为“不确定类型”,不可以用void来声明变量。如:void a = 10;如果出现这样语句编译器会报错:variable or field ‘a’ decl...

2019/10/29 07:34
35
C语言typeof详解

typeof 是 GNU C 标准里特有的扩展,标准的 ISO C 并没有这个关键字,所以在编译的时候不能加任何 ISO 的 C 标准选项,否则会报错。使用时加入-std=gnu90 即 GNU 的标准即可。 typeof的作用类...

2019/10/27 15:56
183
未初始化指针问题

《C和指针》书上说 int *a ... *a = 12 这样写声明一个变量,但未对指针初始化 如果指针是函数的形参,比如 void func(int *a) { (* a) = 12;//这样操作有无问题? } ======================...

2019/09/15 22:01
317
const、static、内部链接属性和外部链接属性整理

说起const、static、以及#define大家都知道,我一直以为我也是知道的,昨天一同学说他面试时被问到#define定义一个常量和const定义一个常量有什么不同, 我整理了下思路,发现当想向他说清楚...

2019/04/05 06:59
49
const、static、内部链接属性和外部链接属性整理

c语言中,多个文件组合的时候,有可能标示名相同,那么这个时候编译器如何判别的呢? c语言中有3种链接属性: 外部(external), 内部(internal),无设置(none) 外部(external): 使用exter...

2019/04/05 06:52
23
深入 理解char * ,char ** ,char a[ ] ,char *a[] 的区别

C语言中由于指针的灵活性,导致指针能代替数组使用,或者混合使用,这些导致了许多指针和数组的迷惑,因此,刻意再次深入探究了指针和数组这玩意儿,其他类型的数组比较简单,容易混淆的是字...

2019/03/26 21:48
56
函数指针和指针函数用法和区别

前言 函数指针和指针函数,在学习 C 语言的时候遇到这两个东西简直头疼,当然还有更头疼的,比如什么函数指针函数、指针函数指针、数组指针、指针数组、函数指针数组等等,描述越长其定义就越...

Qt
2019/03/26 16:45
17
C语言中的volatile——让我保持原样

volatile译为:易变的。这不是和题目的让我保持原样矛盾了吗?其实不然,在变量前加上该关键字修饰,确实是告诉编译器,这个变量是一个容易改变的变量,不要对它进行优化,每次都要到变量的地...

2019/03/25 23:36
35
__attribute__ 总结

attribute是GNU C特色之一,在iOS用的比较广泛.系统中有许多地方使用到. attribute可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute)等...

指针数组和数组指针的区别

这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。 指针数组:arr...

2019/03/24 16:33
72
Linux系统调用的运行过程

在Linux中,系统调用是用户空间访问内核的唯一手段,它们是内核唯一的合法入口。 一般情况下,应用程序通过应用编程接口(API)而不是直接通过系统调用来编程,而且这种编程接口实际上并不需要...

2019/03/18 08:16
15
repo - contains uncommitted changes

在使用repo sync同步代码时候出现 error: .repo/manifests/: contains uncommitted changes 出现这个问题的原因是本地代码发生变化,但未commit 试着通过 git reset --hard来恢复所有变化的文...

2019/03/15 09:02
293
c语言open与sys_open的用法

系统调用是有一个 CPU 运行等级的提升问题. 用户代码在 3 级, 操作系统代码在 0 级. open 是对在 Ring 3 级对系统调用的一个包装. 所有的系统函数只有一个系统调用入口, int $0x80, 在这条指...

2019/03/13 23:20
114
extern “C”的作用详解

extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数...

2019/01/25 11:30
114
详解 GNU C 标准中的 typeof 关键字

如果你是 C++ 程序员,应该接触过 C++11 里的 decltype 操作符,它的作用是自动推导表达式的数据类型,以解决泛型编程中有些类型由模板参数决定而难以(甚至不可能)表示的问题。其实这个特性...

2019/01/03 17:02
216
数组指针和指针数组的区别

数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据...

char ** 与char * a[ ] 区别

先看 char *a [ ] ; 由于[ ] 的优先级高于* 所以a先和 [ ]结合,他还是一个数组,数组中的元素才是char * ,前面讲到char * 是一个变量,保存的地址。。 所以 char *a[ ] = {"China","Frenc...

2018/11/16 10:19
2.3K
C语言的预处理、编译、汇编、链接

一、预处理 预处理指令的执行主要包含下列事情: 1.头文件的包含 2.注释的删除 3.宏定义的替换 4.条件编译的选择 指令:gcc -E test.c -o test.i /* 调用的是预处理器cpp, -E:只进行预处理...

GCC
2018/11/13 14:18
314
简化void(*signal(int signum, void(*handler)(int)))(int)

1.先看void(*handler)(int),这就是一个函数指针嘛,这步我们可以用typedef来定义函数指针类型 typedef void(*handler)(int),这步简化完后为 typedef void(*handler)(int) void(*signal(int s...

2018/11/09 09:36
210

没有更多内容

加载失败,请刷新页面

返回顶部
顶部