C-语言学习(1)------C编程参考信息和编程规范

225 阅读5分钟

C编程参考信息

常用函数头文件

函数名称头文件名称
malloc,calloc,free<stdlib.h>
errno<errno.h>
assert<assert.h>
size_t,true,false<stddef.h>
fopen fclose fwrite 等文件操作相关<stdio.h>
memcpy相关,strncpy字符串操作相关<string.h>
strerror 返回指定错误码<string.h>
va_start,va_end 等变参函数<stdarg.h>
int8_t,uint8_t,uint16_t<stdint.h>

printf 格式控制符参考

格式控制符功能说明
%c输出单一的字符
%o %#o将整数转换为八进制,%#o 打印八进制前面加0
%u打印十进制无符号数
%%打印%这个符号
%x,%X, %#x打印小写16进制数和大写16进制数,%#o 打印十六进制前面加0x
%d,%ld以十进制、有符号的形式输出int、long 类型的整数
%f按照常规的浮点格式打印,精度字段决定小数点后面位数,缺省值是6
%p打印出一个指针值
m.nm.n:m指域宽,即对应的输出项在输出设备上所占的字符数;N指精度用于说明输出的实型数的小数位数指定为n,隐含的精度为n=6位
m.nm 代表的占用的列数,包括小数点和小数的位数,不够前面补空格,超出m列不做处理,n表示小数点的位数,不足后面补0
%s打印出一个字符串
%e %E参数根据指数形式打印,缺省值是6
%g %G以十进制和指数中较短的形式输出 float、double 类型的小数,并且小数部分的最后不会添加多余的 0;如果 g 小写,那么当以指数形式输出时 e 也小写;如果 G 大写,那么当以指数形式输出时 E 也大写

printf 中规定的特殊字符

特殊字符作用
\n换行操作
\f清屏并且换页
\r回车
\ttab 字符
\xhh16进制表示的ASCII码,其中h 可以用0~f中的一个代替
void testprintfOperation()
{

printf("char demo  %c %c \n", 'A', 48); 
printf("int demo %d,%ld \n", 2018, 20182018ul);

printf("int demo %-3d,%3ld \n", 2018, 20182018ul);

printf("\t speical char demo \n");
printf("float demo %f  %3.3f  %3.9f\n", 1 / 3.0, 1 / 3.0, 1 / 3.0); // .3 means only save 3 ponit number

printf("Hex : %x %#x,DEC: %d,eight : %o %#o\n", 100, 100, 100, 100, 100);

printf("float demo demo %e %E \n", 1 / 3.0, 1 / 3.0);
}
输出结果:
char demo  A 0 
int demo 2018,20182018 
int demo 2018,20182018 
	 speical char demo 
float demo 0.333333  0.333  0.333333333
Hex : 64 0x64,DEC: 100,eight : 144 0144
float demo demo 3.333333e-01 3.333333E-01 

C 语言标准演进

C语言标准说明
K&R C1987年提出,是许多编译器的最低标准要求,许多老旧的编译仍然运行 K&R C 的标准
ANSI C&ISO C现在被几乎所有广泛使用的编译器支持
C89 和 C90美国国家标准协会(American National Standards Institute,简称 ANSI)推出C语言和C标准库的标准
C99C语言的标准化委员会在1999年正式发布
C112011年,C语言标准委员会正式发布

C语言中重要知识点

关键知识点说明
关键字32个关键字
预处理器文件包含,宏定义,编译与处理等
表达式NA
变参函数va_start,va_arg 等
常用位运算对齐,清除某些位等
日期和时间操作NA
常用库介绍string.h stdint.h 等
常用操作技巧NA

C99 标准中,C语言关键字共34个

关键字说明
register,auto,char,float,int,long,short,double8个 基本的整形和浮点型关键字
const,extern,signed,unsigned,static,volatile6个 重要类型修饰符关键字
if,else,while,for,switch,continue,break,case,default,do,goto11个 流程控制关键字(顺序,分支,循环)
void,return,inline(C99 起),3个 函数相关关键字
struct,enum,union3个 构造类型关键字
sizeof1个 获取字节大小关键字
typedef1个 重命名类型关键字
restrict1个 指针类型限定关键字

编程规范

匈牙利命名法

开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写 ex: int iMyAge; i是int类型的缩写; char cMyName[10]; c是char类型的缩写; float fManHeight;f是float类型的缩写;

前缀名称对应关系
aarray
bboolean
bybyte
cchar
hHandle
ppointer
ststruct
eenum

驼峰式命名法

第一个单词首字母小写,后面其他单词首字母大写 比如: int myAge; char myName[10]; float manHeight;

头文件注释和函数注释模板

头文件注释

/*******************************************************************************
  * Copyright(C),2022,OpenSource Project
  * @file Name
  * @author  
  * @version V1.0.0
  * @date
  * @brief
  * @History
*******************************************************************************

函数注释

/****************************************************
  * @functionName
  * @brief
  * @param
  * @retval
****************************************************/

常用缩写

缩写说明
tmptemp
flgflag
staticsticstat
inc/decincreament,decrement
msgmessage
staticsticstat
lenlength
idNA
res/retresult,returnvalue

结构体,枚举类型定义格式

typedef struct MI_AAA_StructureName_s
{
    int aaa;
    int bbb;
} MI_AAA_StructureName_t;

typedef struct MI_OSD_InitRegion_s
{
    int aaa;
    int bbb;
} MI_OSD_InitRegion_t;

typedef enum
{
    E_ MI_OSD_ENABLE,
    E_ MI_OSD_DISABLE
} MI_OSD_InitRegion_e;

一些有意义的名词缩写 add /remove begin / end create / destroy insert /delete first /last get /release increment /decrement put/get lock /unlock open /close min /max old / new start/ stop next / previous source / destination cut / paste send / receive show / hide

create/destroy begin/end start/stop open/close add/remove insert /delete

lock/unlock min/max show/hide increment /decrement next/previous send/receive set/get src/dst

Review History

日期说明
2022/10/31合并处理
2023/2/17转移掘金