在编写C代码中总结的一些写法,不定时会更新。
1.指针变量、BOOL类型和float类型与零值进行比较的if语句
指针类型
int *p = NULL;
if(NULL == p)
if(NULL != p)
BOOL类型
bool test_flag = FALSE;
if(test_flag)
if(!test_flag)
float类型
const float EPSINON = 0.00001
float x = 0.0;
if((x >= -EPSINON) && (x <= EPSINON))
2.关于头文件编写
为避免头文件被多次包含和编译,可以使用一下两种方式:
(1) #pragma once
#pragma once
//动态数组结构体
struct dynamic_array
{
void **pAddr; //维护在堆区真实的数组指针
int m_capacity; //数组容量
int m_size; //数组大小
};
//初始化数组
struct dynamic_array * init_dynamic_array(int capacity);
(2) #ifndef #define #endif
#ifndef __DYNAMIC_ARRAY_H__
#define __DYNAMIC_ARRAY_H__
//动态数组结构体
struct dynamic_array
{
void **pAddr; //维护在堆区真实的数组指针
int m_capacity; //数组容量
int m_size; //数组大小
};
//初始化数组
struct dynamic_array * init_dynamic_array(int capacity);
#endif
在头文件编写时常用第二种方式,移植性比较好。
3.跨平台使用C库
在一些头文件里有时候会见到下面这段代码:
#ifdef __cplusplus
extern "C" {
#endif
//一些声明语句
#ifdef __cplusplus
}
#endif
这样写其实是支持跨平台使用,支持在C++项目里调用这个C头文件(函数库)。