GCC
-
C语言条件编译(#if,#ifdef,#ifndef,#endif,#else,#elif)
条件编译(conditional compiling)命令指定预处理器依据特定的条件来判断保留或删除某段源代码。例如,可以使用条件编译让源代码适用于不同的目标系统,而不需要管理该源…
-
gets和fgets函数及其区别,C语言gets和fgets函数详解
每当讨论 gets 函数时,大家不由自主地就会想起 1988 年的“互联网蠕虫”,它在 UNIX 操作系统的 finger 后台程序中使用一个 gets 调…
-
C++语言的历史
C++ 语言是从C语言发展而来的。 C语言有很多优点,也有很多不足。如对类型匹配的检查不够严格、基本没有支持代码重用的机制、不支持面向对象等。这使得在用C语言开发大规模的软件时,维…
-
清空输入缓冲器,C语言清空输入缓冲区完全攻略
本节,在学习如何清空输入缓冲区之前,我们先来介绍一下“输入缓冲区”的概念。 输入缓冲区 所有从键盘输入的数据,不管是字符还是数字,都是先存储在内存的缓冲区中…
-
C语言变量定义和赋值
定义变量的格式非常简单,如下所示: 数据类型 变量名; 首先要强调的一点是:最后的分号千万不要丢了。变量的定义是一个语句,我们说过,语句都是以分号结尾的。 &ldquo…
-
用C语言构建一个可执行程序的流程
从用C语言写源代码,然后经过编译器、连接器到最终可执行程序的流程图大致如下图所示。 图:C语言源代码编译流程图 从图中我们可以清晰地看到C语言编译器的大致流程。 首先,我们先用C语…
-
关于GNU规范的语法扩展
GNU 是一款能用于构建类 Unix 操作系统的计算机软件合集,由自由软件之父 Richard Stallman 开创,于 1983 年 9 月 27 日对外发布。GNU 完全由自…
-
C89(C90)、C99、C11——C语言的三套标准
C语言最初由 Dennis Ritchie 于 1969 年到 1973 年在 AT&T 贝尔实验室里开发出来,主要用于重新实现 Unix 操作系统。此时,C语言又被称为 …
-
线程终止执行的三种方法(Linux)
多线程程序中,终止线程执行的方式有 3 种,分别是: 线程执行完成后,自行终止; 线程执行过程中遇到了 pthread_exit() 或者 return,也会终止执行; 线程执行过…
-
Linux线程死锁详解
我们已经学会了 4 种实现线程同步的方法(互斥锁、信号量、条件变量和读写锁),很多初学者在使用这些方法的过程中,经常会发生“线程一直被阻塞”的情况,我们习惯…