我正在转换一个C ++类,我们称之为render
,它只使用了一个实例(单例但非正式),纯粹用于C程序的程序风格。它本身就是一个简单的软件渲染器,可能应该首先编写。
ex-class主要处理大量一般命名的私有变量,从单个字节到大型二进制数据数组。 unsigned char frame_counter
,char* frame_data
,unsigned char palette[256][128][3]
等等,这正是我想要取代的。
我正在以一种简单的方式重命名我的函数,例如:render::load_sprite(const char* file)
- > render_load_sprite(const char* file)
全局“成员”变量:
renderer_palette
这样的前缀?有点从内部冗长。状态结构:
在这个例子中首选的是globals,struct,还是有其他选择?
Eeek ..全球?射击自己。永远不要使用全局。大不,不。废墟重入并杀死你的代码。
我写的所有C代码都是这样的:
struct object {
int data;
};
void object_init(struct object *self);
void object_update(struct object *self, float dt);
int object_write_to_file(struct object *self, const char *file);
self
无处不在(即使在C中允许也不要使用this
,因为你在使用C ++时会遇到问题)