随笔分类 - C语言
C语言基础、C语言技巧、C语言高级编程
摘要:Linux编程时候,如果我们需要调用shell命令或脚本通常使用system方法。如system("ls") 该方法返回值为0或-1,即成功或失败。而有的时候我们想要获取shell命令执行的结果,该怎么办呢? 我们可以将shell命令结果重定向到文件中,然后再读取这个文件,如: system("ls
阅读全文
摘要:前言:先看下面类型的含义 1) int p; 这是一个普通的整型变量。 2) int *p; 从p处开始,先与*结合,说明p是一个指针,然后再与int结合,说明指针所指向的内容的类型为int型。所以p是一个指向整型数据的指针。 3) int p[3]; 从p处开始,先与[]结合,说明p是一个数组,然
阅读全文
摘要:链接库是windows的术语,但对于Linux来说,其概念是一样的。我们通常会把一些相似或相近功能的程序生成链接库,这样的好处是: 1)便于共享,开发软件时如需要相同功能时,不需要将大量重复的代码整合到工程当中,直接调用即可。 2)便于保密,链接库是二进制的,源代码是不可见的。 链接库有动态与静态两
阅读全文
摘要:结构体 1,结构体即为多个基本数据类型组合而成的数据类型。结构体本质上同int等一样同为数据类型,可以定义变量,内部成员不能直接赋值。 上面是错误的。正确写法如下: 2,结构体常同typedef类型重命名一同使用,如下: 3,结构体内存对齐 以上代码输出的值为8,而不是直观意义上的5,这是因为结构体
阅读全文
摘要:extern: extern修饰变量,声明该变量为外部文件的全局变量。若使用外部全局变量,必须用extern声明。 extern修饰函数,声明该函数为外部函数。extern修饰的函数形参必须与原函数一致,否则可能导致传参出错,且编译器不会报警。建议声明外部函数省略掉extern。 const: 定义
阅读全文
摘要:1,static修饰全局变量 限定变量的作用域。被static修饰的全局变量存储域不变,依然存储在静态存储区,即bss段或data段。但作用域发生改变,被static修饰全局变量只能被本文件的函数访问,对于其他源文件是不可见的,哪怕用extern声明也不可见。 2,static修饰局部变量 限定变量
阅读全文
摘要:一个进程的数据在内存中的布局如下图: bss段(bss segment):可读可写不可执行,通常用来存放程序中未初始化的全局变量。bss是英文Block Started by Symbol的简称。bss段属于静态内存分配。 data段(data segment):可读可写不可执行,通常用来存放程序中
阅读全文
摘要:GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标
阅读全文
浙公网安备 33010602011771号