现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2019-11-17 09:22 工业·编程 ⁄ 共 518字 暂无评论
    在C/C++中,宏定义的有效范围被规定为当前文件内有效。     “当前文件内有效”分为两种情况,一种是定义在头文件中,另一种是定义在源文件中。     1)在头文件中的宏定义,随着头文件一同被包含到源文件中时,此时宏定义在该源文件中有效,当头文件中的宏定义随着该头文件一起被包含到另一个头文件中,而这另一个头文件又被另一个源文件包含,则该宏定义在最终被包含的源文件中...
阅读全文
2019-11-16 09:17 工业·编程 ⁄ 共 308字 暂无评论
#include <iostream> using namespace std; void t(void) {     #define a 10 }   int main() {    cout << a<<endl;    return 0; } 如上代码编译,打印输出结果为10。由此可见#define的作用域是文件作用域,在定义之后的位置使用都有效。改变其作用域可在后面加#undef。如下 #include <iostream> using namespace std; void t(void) {     #de...
阅读全文
C语言作为一种常用的计算机开发语言,被用于各种领域,尤其是单片机与嵌入式的开发,在现阶段更有着无可替代的作用.使用过程中我们经常会听说 GUN C 、ANSI C、标准C这几个术语,在了解这几个术语对应的C标准之前,我们需要先了解三个组织,分别是自由软件基金会,美国国家标准学会以及国际标准化组织。下面对其三个组织进行简单说明: 自由软件基金会:是美国的一个民间非营利组织,致力于推进自由软件,其中linux与gnu就是由这...
阅读全文
2019-11-14 11:19 工业·编程 ⁄ 共 5908字 暂无评论
  什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。   下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。   pool_init()函数预先创...
阅读全文
2019-11-13 09:07 工业·编程 ⁄ 共 1222字 暂无评论
1.K&R C 1978年,丹尼斯•里奇(Dennis Ritchie)和布莱恩•柯林汉(Brian Kernighan)合作出版了《C程序设计语言》的第一版。书中介绍的C语言标准也被C语言程式设计师称作“K&R C”,第二版的书中也包含了一些ANSI C的标准。K&R C主要介绍了以下特色: 结构(struct)类型 长整数(long int)类型 无符号整数(unsigned int)类型 把运算符=+和=-改为+=和-=。因为=+和=-会使得编译器不知道使用者要处理i = -10还是i =-...
阅读全文
2019-11-12 09:06 工业·编程 ⁄ 共 669字 暂无评论
我们在写c语言的时候,经常要使用一些库函数。 虽然我们自己也可以进行写函数,但是,使用已经存在的函数,可以降低我们的工作量和我们代码出现问题的概率。 一般情况下,我们都会使用库函数,但是对于一些初学者而言,库函数,到底需要哪些,我们在自己的函数中,需要添加哪些库函数。有的是不是不需的。 1:基本的库函数 stdio.h和stdlib.h还有string.h这三个库函数,基本上是所有的c语言程序中都有的库函数,这...
阅读全文
2019-11-11 08:56 工业·编程 ⁄ 共 1990字 暂无评论
系统调用:是操作系统为用户态运行的进程和硬件设备(如CPU、磁盘、打印机等)进行交互提供的一组接口,即就是设置在应用程序和硬件设备之间的一个接口层。可以说是操作系统留给用户程序的一个接口。再来说一下,linux内核是单内核,结构紧凑,执行速度快,各个模块之间是直接调用的关系。放眼望整个linux系统,从上到下依次是用户进程->linux内核->硬件。其中系统调用接口是位于Linux内核中的,如果再稍微细分一下的话,整...
阅读全文
2019-11-10 08:49 工业·编程 ⁄ 共 1117字 暂无评论
   Linux系统调用这部分经常出现两个词:libc库和封装函数,不知道你是否清楚它们的含义? libc  1)libc概念 libc是Stantard C Library的简称,它是符合ANSI C标准的一个标准函数库。libc库提供C语言中所使用的宏,类型的定义,字符串操作符,数学计算函数以及输入输出函数等。正如ANSI C是C语言的标准一样,libc只是一个函数库标准,每个操作系统都会按照该标准对标准库进行具体实现。通常我们所说的libc是特指...
阅读全文
1.C语言的标准发展历史 C语言的标准经历过C89、C90、C99以及C11几个版本的发展 (1)C89 1983年,美国国家标准协会ANSI组成了一个委员会,X3J11,为了创立C的一套标准。经过漫长而艰苦的过程,该标准于1989年完成,并在作为ANSIX3.159-1989 "Programming Language C"正式生效。这个版本的语言经常被称作"ANSIC",或有时称为"C89"。 (2)C90 在1990年,ANSI C标准(带有一些小改动)被美国国家标...
阅读全文
2019-11-08 08:17 工业·编程 ⁄ 共 4775字 暂无评论
变长参数,指的是函数参数数量可变,或者说函数接受参数的数量可以不固定。实际上,我们最开始学C语言的时候,就用到了这样的函数:printf,它接受任意数量的参数,向终端格式化输出字符串。本文就来探究一下,变长参数函数的实现机制是怎样的,以及我们自己如何实现一个变长参数函数。在此之前,我们先来了解一下参数入栈顺序是怎样的。 函数参数入栈顺序 我们可能知道,参数入栈顺序是从右至左,是不是这样的呢?我们可以通过...
阅读全文