使用全局结构与调用方法(该结构的指针)
using a global struct vs calling methods(pointer of that struct)
Ex.我有一个函数可以更改没有参数并使用全局结构的像素数据(红色,绿色,蓝色(,glob
。我会访问glob.data
来读取红色,绿色,蓝色像素。
如果我包含一个参数,这将是一个glob*
,我可以从指针访问数据,有什么区别。
从任何函数使用全局更好吗?
这种实现比调用"glob.width = 2"等更好
。RevolverFilter(&global, &temp);
void RevolverFilter(glob* org,glob* temp1){
for x: for y: tRed = org->data[x+y*w].r;
...
}
"从任何函数使用全局是更好的做法吗?">
使用全局变量作为将参数传递给函数的替代方法绝对不是一个好的做法。
如果要创建一个将处理(修改(像素的函数,请定义一个处理像素的函数
void processPixel(Pixel& p) {
...
}
将数据
和功能封装到对象中是面向对象设计的基础。因此,使用全局将值传递给函数不是一种"好的"OOD 做法,即使在结构语言(如 C(中,即使对于非 OOD 设计,通常也不是一个好的做法,因为它不利于代码组件的模块化,并在代码中创建"隐藏"依赖项。如果你绝对需要某种类似"全局"的功能,你可以在类中声明一个静态成员,使该成员唯一,同时将其封装到一个组件(类(中。
相关文章:
- 如何在 C# 中映射双 C 结构指针?
- C++:映射结构中的结构指针
- C++:添加新结构时,结构指针向量中的所有元素都会更新
- 类的静态结构指针声明在C++
- 在两个.cpp文件之间定义全局类/结构指针
- 返回对常量结构(指针类型)成员的引用:明显的左值到右值转换
- 是否可以将无符号字符数组reinterpret_cast到仅包含C++中无符号字符成员的结构指针
- 如何在地图中使用结构指针
- 结构指针在"新"调用上给出已分配的地址?
- 铸造结构指针指向C 的工会指针
- c++ 结构指针在初始化为 NULL 时无法读取内存
- 函数中的结构指针的地址为0x1
- C 用结构指针初始化结构
- C 结构指针铸成数组Interop C#
- 方法中不允许访问结构指针
- 如何打印出结构指针
- MPI_Op_create:候选功能不可行.自定义结构指针不能解释为空指针
- 尝试将结构指针传递给类时出错
- 初始化结构指针的值
- 使用 pybind11 将自定义结构(指针向量)从 C++ 传递到 python 的方法是什么?