嵌入式GUI FTK编程风格
来源:互联网 发布:淘宝网食品行业标准 编辑:程序博客网 时间:2024/04/28 09:33
转载时请注明出处和作者联系方式
文章出处:http://www.limodev.cn/blog
作者联系方式:李先静 <xianjimli@gmail.com>
命名规则
名称要表达出对象的意义。
1.文件名
* 以ftk开头(demo和测试程序除外)。
* 单词小写。
* 多个单词用下划线分隔。
示例:
ftk_window.c
ftk_window.h
2.函数名
* 以ftk开头(内部函数或工具函数外可以例外)。
* 单词小写。
* 多个单词用下划线分隔。
示例:
ftk_window_set_focus
ftk_window_get_focus
3.变量名
* 单词小写。
* 多个单词用下划线分隔。
* 对象以thiz命名。
示例:
int fullscreen
FtkWidget* thiz
int update_disabled
4.结构名/枚举名/联合名
* 以Ftk开头(C文件内部使用的结构可以例外)。
* 单词首字大写。
* 多个单词连写。
* 接口的私有信息统一用PrivInfo。
示例:
typedef struct _FtkPoint
{
int x;
int y;
}FtkPoint;
typedef struct _PrivInfo
{
FtkCanvas* canvas;
...
}PrivInfo;
7.常量(宏/枚举变量)
* 以FTK开头(RET_系列除外)。
* 单词大写。
* 多个单词用下划线分隔。
示例:
FTK_WIDGET_NORMAL
FTK_WIDGET_FOCUSED
排版规则
1.缩进
* 以TAB键缩进。
* TAB键的宽度设置为4。
vim可用下面的设置:
set ts=4
set sw=4
set ai
set ci
2.空行
* 避免连续多个空行。
* 函数之间要加空行。
* return与其它语句之要加空行。
* 变量声明与执行代码之间要加空行。
* 逻辑块之间要加空行。
3.空格
* 操作符两端用加空格
* 函数参数之间用加空格
* 用./->等访问成员时,不要加空格。
* 定义指针时,*与类型之间不要加空格。
可移性
* 避免使用编译器特有的特性。
* 避免使用C99等新的特性。
* 使用FTK包装的函数(如内存管理和字符串操作)
* 平台相关的函数要抽象后使用。
* 变量声明要在执行语句之前。
* 对于在多个平台上运行的代码,要在多个平台编译测试。
稳定性
* 变量声明时即对其进行初始化。
* 功能测试通过后,用valgrind检测内存越界和持续内存泄露。
杂项
* 避免使用全局变量。
* 内部函数加static
注释规则
* 用简单明了的代码代替注释。
* 注释用英文书写。
* 注释中写背景和原因,而不是重复代码。
* 文件头注释的格式如下(演示程序、测试程序和自动产生的代码可以例外):
/*
* File: 文件名
* Author: 作者及邮件
* Brief: 说明
*
* Copyright (c) 2009 - 2010 版权
*
* Licensed under the Academic Free License version 2.1
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/*
* History:
* ================================================================
* date who what
*
*/
- 嵌入式GUI FTK编程风格
- 嵌入式GUI FTK编程风格
- 嵌入式GUI FTK-0.5
- 嵌入式GUI ftk-0.1发布
- 嵌入式GUI ftk-0.2发布
- 嵌入式GUI FTK支持输入法
- 嵌入式GUI ftk-0.3发布
- 嵌入式GUI FTK-0.5发布
- 嵌入式GUI ftk-0.1发布
- 嵌入式GUI FTK-0.5发布
- 嵌入式GUI FTK 界面设计器
- 嵌入式GUI FTK支持输入法
- GUI库推荐--嵌入式GUI ftk
- 嵌入式GUI FTK介绍(1)-基本组件
- 嵌入式GUI FTK介绍(4)-脚本语言绑定
- 嵌入式GUI FTK介绍(6)-特性
- 嵌入式GUI FTK介绍(7)-主题
- 嵌入式GUI FTK介绍(10)-编译选项
- 决定
- 事务与数据库连接的关系不是一对一的
- 散列函数
- 白话回调(CallBack)方法
- PHP写的下载程序,Zip文件下载不完整。
- 嵌入式GUI FTK编程风格
- your system does not seem to be set up to build kernel modules
- 最靠不住的8种老板
- 2010033065
- C#连接数据库
- JSP初步
- 留住人才八个锦囊
- css统一设置input样式(区分input类型)
- sql server 2005属性owner不可用于数据库