linux c
戴磊freecls
这个作者很懒,什么都没留下…
展开
-
linux c解析命令行选项getopt、optarg、optind、opterr、optopt
原文地址http://daileinote.com/computer/c_base/14一个典型的 unix 命令行有着如下的形式。command [options] arguments选项的形式为连字符 (-) 紧跟着一个唯一的字符用来标识该选项,以及一个针对该选项的可选参数。带有一个参数的选项能够以可选的方式在参数和选项之间用空格分开。多个选项可以在一个单独的连字符后归组...原创 2019-12-24 19:01:33 · 1840 阅读 · 0 评论 -
linux c可变参数va_start、va_end、va_arg、va_list
原文地址http://daileinote.com/computer/c_base/13va_start、va_end、va_arg、va_list 其实是宏定义,在不定参数函数中会用到。在解释上面几个之前,我们先来做几件事。确定栈增长方向#include <stdio.h>#include <stdlib.h>#include <uni...原创 2019-12-24 18:59:49 · 555 阅读 · 0 评论 -
linux c预处理器
原文地址http://daileinote.com/computer/c_base/10#define定义明显常量(符号常量), 定义宏命令,定义后,编译器在预处理阶段就会直接替换值,所以一些关系到运算符优先级的尽量多的使用括号。#include<stdio.h>#define PI 3.14//字符串化#define say_2(x) printf("the s...原创 2018-05-16 21:36:50 · 379 阅读 · 0 评论 -
linux c按位运算符
原文地址http://daileinote.com/computer/c_base/09按位取反:~0变成1,1变成0。按位与:&两边都为1的为1,其他为0。按位或:|只要有一方为1的就为1,其他为0。按位异或:^一方为0,一方为1的为1,其他为0例子#include<stdio.h>typedef unsigned char u_char;...原创 2018-05-16 17:55:10 · 2171 阅读 · 0 评论 -
linux c其他复杂的声明以及typedef
原文地址http://daileinote.com/computer/c_base/08先了解下优先级,[]和()的优先级相同,他们比*的优先级高,结合是从左往右。int * days[5]days是数组,包含5个元素(int型指针)int (* days)[5]days是指针,指向一个数组,数组里有5个int元素int days[2][3]days是二维数组,包含2个数组,每...原创 2018-05-16 10:33:39 · 252 阅读 · 0 评论 -
linux c结构体、联合、枚举
原文地址http://daileinote.com/computer/c_base/07结构体可以用来表示复杂的数据结构,提高表示数据的能力,让你能创造新的形式。//定义结构体struct person { char name[10]; int age;};//定义结构体变量struct person p1;//访问赋值strcpy(p1.name, 'fre...原创 2018-05-16 10:32:50 · 555 阅读 · 0 评论 -
linux c类型限定符const volatile
原文地址http://daileinote.com/computer/c_base/06constconst类型限定符是用来设定对象为只读。const int num;num = 2; //报错 const int num = 2; //没问题//声明数组只读const int days[4] = {1,2,3,4};声明普通变量和数组使用const...原创 2018-05-16 10:31:55 · 149 阅读 · 0 评论 -
linux c动态内存分配函数malloc calloc free
原文地址http://daileinote.com/computer/c_base/05void *malloc(size_t size)分配size个字节的内存,成功返回内存地址,失败返回NULLvoid *calloc(size_t n, size_t size)分配n*size个字节内存,并把分配到的内存所有位置0,成功返回内存地址,失败返回NULLvoid free...原创 2018-05-16 10:30:32 · 1346 阅读 · 0 评论 -
linux c存储期、作用域、链接
原文地址http://daileinote.com/computer/c_base/04存储期:静态存储期分配的内存在程序执行期间一直存在线程存储期分配的内存从线程生成到线程结束之前一直存在自动存储期对象一般在块里面,当程序进入这个块时分配内存,退出这个块时就释放内存动态存储期手动分配内存和释放内存(malloc,calloc)作用域:文件作用域(全局)块作用域可见范围在块内函数作用...原创 2018-05-16 10:29:39 · 180 阅读 · 0 评论 -
linux c字符串-指针
原文地址http://daileinote.com/computer/c_base/02C语言中的字符串是最有用最重要的数据类型之一,虽然我们平常用的很多,但是内部各种细节相信不是每个人都能说得明白。字符串涉及到很多指针操作,对指针不太熟悉的建议先阅读linux c数组和指针(详解)。字符串字面量(字符串常量)属于静态存储类别,所以只会存储一次,在整个生命周期内存在//如果字符串字...原创 2018-05-16 10:28:14 · 1066 阅读 · 0 评论 -
linux c数组和指针(详解)
原文地址http://daileinote.com/computer/c_base/01普通数组声明//声明数组int arr[3];int arr[3] = {1,2,3};//由编译器自动指定数组大小int arr[] = {1,2,3}//多维数组int arr[2][2] = {{1,2}, {3,4}}数组变量名本身就是数组的地址,数组跟指针的关系很密切...原创 2018-05-13 01:17:42 · 2268 阅读 · 0 评论