
C语言
文章平均质量分 58
蒋暕青de博客
jianqingjiang.github.io
展开
-
C语言程序的编译过程
c语言程序的编译过程#includeint main(){ printf("Hello World!\n"); return 0;} 对于这个最简单的“Hello World!”程序——hello.c,它的生命周期一开始时是一个高级c程序,因为它处于这种形式时,它是能够被人读懂的。然而,为了在系统上运行hello.c转载 2017-01-09 17:30:32 · 610 阅读 · 0 评论 -
C语言如何打印LOG
第一种LOG函数#define LOG_PROC(log_level, format, arguments...) \ printf("[%s] ", log_level); \ printf(format, ##arguments); \ printf("\n");第二种LOG函数// 2UINT1 g_log_level; //设置日志显示级别#def原创 2017-01-10 09:20:22 · 6116 阅读 · 0 评论 -
sem_init函数用法
sem_init函数sem_init函数是Posix信号量操作中的函数。sem_init() 初始化一个定位在 sem 的匿名信号量。value 参数指定信号量的初始值。 pshared 参数指明信号量是由进程内线程共享,还是由进程之间共享。如果 pshared 的值为 0,那么信号量将被进程内的线程共享,并且应该放置在这个进程的所有线程都可见的地址上(如全局变量,或者堆上动态分配的变量)。如果原创 2017-01-10 13:17:51 · 43126 阅读 · 1 评论 -
指针函数与函数指针
1.指针函数先看下面的函数声明,注意,此函数有返回值,返回值为int *,即返回值是指针类型的。[cpp] view plain copyint *f(int a, int b); 上面的函数声明又可以写成如下形式:int* f(int a, int b);让指针标志 * 与int紧贴在一起,而与函数名f转载 2017-02-07 17:36:06 · 361 阅读 · 0 评论 -
C语言指针详解
指针我们通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,学习指针是很有必要的。 正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址:#include int main (){ int var1;转载 2017-01-12 11:16:25 · 2111 阅读 · 0 评论 -
C语言中static的作用(精炼)
static的作用(精辟分析) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容转载 2017-01-17 16:35:14 · 429 阅读 · 0 评论 -
C语言中指针探秘(一)
指针与指针变量在程序中声明变量后,编译器就会为改变量分配相应的内存单元。也就是说,每个变量在内存中会有相应固定的位置,有具体的地址。由于变量的数据类型不同,它所占的内存单元数也不相同。如下例声明了一些变量和数组。 int i = 18; //声明整形变量i并赋值char c[5] = {89,90,91,92,93}; //声明字符型数组c并初始化原创 2017-06-18 16:48:21 · 627 阅读 · 0 评论 -
以两军问题为背景来演绎Basic Paxos
背景在计算机通信理论中,有一个著名的两军问题(two-army problem),讲述通信的双方通过ACK来达成共识,永远会有一个在途的ACK需要进行确认,因此无法达成共识。两军问题和Basic Paxos非常相似1) 通信的各方需要达成共识;2) 通信的各方仅需要达成一个共识;3) 假设的前提是信道不稳定,有丢包、延迟或者重放,但消息不会被篡改。Basic Paxos最早转载 2017-06-09 11:20:17 · 841 阅读 · 0 评论