打印
[C语言]

C语言变量最好的风格是用小写加下划线------C语言该怎么写?

[复制链接]
1378|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yxco123456|  楼主 | 2022-9-13 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看到很多朋友  C语言的有很多朋友用windows的那套驼峰写法,实际上也不是完全驼峰
英文首字大写了,还要用下划线隔离字符,这不是脱了裤子放屁,多此一举吗?还有那种用字宽放到变量前面的做法都是不不取的,影响阅读!!!
除了常量以外的所有变量(极个别特别表述的可以用大写,比喻某个模块),包括用宏定义的函数,比较好的写法是用小写字母加下划线,简洁明了
几乎所有的C语言SDK代码,大型C语言项目,都是这样的

bool at_dma_get_notify_flag()
{
    return g_notify_flag;
}

void at_dma_set_notify_flag(bool n_flag)
{
    g_notify_flag = n_flag;
}

bool at_dma_get_send_flag()
{
    return g_send_flag;
}

void at_dma_set_send_flag(bool n_flag)
{
    g_send_flag = n_flag;
}

uint32_t at_get_count()
{
    #if 0
    uint8_t i=0;
    AT_LOG("dbg buf:\n"); // debug only.

    for(i=0; i<20; i++)
        AT_LOG("0x%x ",g_data_buf[i]);

    #endif
    AT_LOG("err:0x%x\n",g_error);
    return g_pkt_cnt;
}

typedef enum
{
    AT_BUF_DIV_256=0,
    AT_BUF_DIV_128,
    AT_BUF_DIV_64,
    AT_BUF_DIV_32,
    AT_BUF_DIV_16,
    AT_BUF_DIV_MAX,
} AT_BUF_DIV_e;

void at_dma_rx_init(void);
void at_dma_tx_init(void);
void at_dma_deinit(void);
uint8_t at_dma_start(uint32_t dst_addr);
void at_dma_uart_to_BLE_DMA_rx(void);
void at_dma_uart_to_BLE_notify_data(void);
bool at_dma_get_notify_flag(void);
void at_dma_set_notify_flag(bool n_flag);
AT_BUF_DIV_e at_dma_get_div(void);
void at_dma_set_div(AT_BUF_DIV_e div);
uint32_t at_get_count(void);
uint8_t at_dma_get_buf_len(void);
void at_dma_set_buf_len(uint8_t b_len);
void at_dma_move_ble_data(uint8_t* pdata);
void at_dma_BLE_to_uart_DMA_tx(void);
bool at_dma_get_send_flag(void);
void at_dma_set_send_flag(bool n_flag);

使用特权

评论回复

相关帖子

沙发
yxco123456|  楼主 | 2022-9-13 11:19 | 只看该作者
从今天开始,写C的朋友应该改过来,不要搞什么不伦不类的驼峰写法了

C的标准写法是小写加下划线 ,,,,,,,,,,,,,,明白???

使用特权

评论回复
板凳
yxco123456|  楼主 | 2022-9-13 11:21 | 只看该作者
摘抄一段 彭东的 LMOS内核驱动

#include "drivers.h"


PUBLIC drvstus_t hostbrideg_entry(driver_t* drvobjp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_exit(driver_t* drvobjp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_open(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_close(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_read(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_write(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_ioctrl(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_lseek(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_dev_start(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_dev_stop(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}
PUBLIC drvstus_t hostbrideg_enmu(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}

PUBLIC drvstus_t hostbrideg_setpower(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS ;
}

PUBLIC drvstus_t hostbrideg_flush(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}

PUBLIC drvstus_t hostbrideg_shutdown(device_t* devobjp,ioinfo_t* ioifobjp,uint_t extval,void* extp)
{
                return DFCOKSTUS;
}

DEFINE_STATIC_KERMODUS(hostbrideg,"hostbrideg",KMATB_**_DRIVER,hostbrideg_entry,hostbrideg_exit);

使用特权

评论回复
地板
diweo| | 2022-9-13 14:48 | 只看该作者
驼峰写法没什么,匈牙利写法就比较讨厌了。

使用特权

评论回复
5
24kdewhite| | 2022-9-13 14:52 | 只看该作者
不同功能用途可以用不同写法吧,只用这个有点不够用了

使用特权

评论回复
6
jerkoh| | 2022-9-13 16:02 | 只看该作者
本帖最后由 jerkoh 于 2022-9-13 16:04 编辑

hostBridegRead(...)      刚学C时,觉得这样刚柔并济,看着舒服
host_brideg_read(...)   用了10年后,觉得这样眼睛看着更清晰,省力
hbr666(...)  现在15年后,能编译通过就行了,随心随意,无欲无求

使用特权

评论回复
7
xch| | 2022-9-13 19:39 | 只看该作者
孔乙己专门研究这个写法。

使用特权

评论回复
8
yxco123456|  楼主 | 2022-9-13 20:44 | 只看该作者
xch 发表于 2022-9-13 19:39
孔乙己专门研究这个写法。

从Unix 到Linux都是这样写的,许多大佬写的C也是这样写的,我见过大佬用汇编指令写代码都是用小写,看着就清爽。没有人期待你做出改变!

使用特权

评论回复
9
xch| | 2022-9-13 22:06 | 只看该作者
yxco123456 发表于 2022-9-13 20:44
从Unix 到Linux都是这样写的,许多大佬写的C也是这样写的,我见过大佬用汇编指令写代码都是用小写,看着 ...

俺是乡巴佬,没见过大佬。

使用特权

评论回复
10
专注于嵌入式| | 2022-9-14 08:22 | 只看该作者
不要用你以为的就认为是你以为的。

使用特权

评论回复
11
yxco123456|  楼主 | 2022-9-14 09:41 | 只看该作者
xch 发表于 2022-9-13 22:06
俺是乡巴佬,没见过大佬。

你侮辱了乡巴佬这个词了,你应该是原始部落人

使用特权

评论回复
12
William1994| | 2022-9-14 10:40 | 只看该作者
据说在ANSI的ASCII标准第一版(7bit,共128个)之前,还有一个版本只有大写字母和五六个符号的。
按shift比较麻烦,最好是能按空格、逗号、横杠来隔离一个词语中的多个单词。像高级语言cat1.name 就很方便输入。

使用特权

评论回复
13
yxco123456|  楼主 | 2022-9-14 11:17 | 只看该作者
William1994 发表于 2022-9-14 10:40
据说在ANSI的ASCII标准第一版(7bit,共128个)之前,还有一个版本只有大写字母和五六个符号的。
按shift比较 ...

这个逻辑在英语的书写中也有体现,大写是着重强调的时候用的,比喻标语,强调某样东西,同样程序当中的书写也是一样的,只有在着重强调某样东西的时候才用大写。

使用特权

评论回复
14
R2D2| | 2022-9-14 21:42 | 只看该作者
孔乙己专门研究这个写法。

使用特权

评论回复
15
yxco123456|  楼主 | 2022-9-15 08:28 | 只看该作者
R2D2 发表于 2022-9-14 21:42
孔乙己专门研究这个写法。

所以高手对于来说是绝缘的,你只能做低手

使用特权

评论回复
16
R2D2| | 2022-9-15 16:19 | 只看该作者
yxco123456 发表于 2022-9-15 08:28
所以高手对于来说是绝缘的,你只能做低手

那你就是低手里面的辣鷄。

使用特权

评论回复
17
mega99| | 2022-9-16 18:18 | 只看该作者
R2D2 发表于 2022-9-15 16:19
那你就是低手里面的辣鷄。

你这种是垃圾种的战斗机,出来丢人现眼是吧?

使用特权

评论回复
18
R2D2| | 2022-9-17 22:29 | 只看该作者
mega99 发表于 2022-9-16 18:18
你这种是垃圾种的战斗机,出来丢人现眼是吧?

丢你老母的脸。

使用特权

评论回复
19
nos001| | 2022-9-18 01:57 | 只看该作者
死板教条,难看难读。

使用特权

评论回复
20
nos001| | 2022-9-18 01:58 | 只看该作者
死板教条,难看难读。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

15

帖子

0

粉丝