- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我今天的问题是关于编程的便利性和效率的平衡问题之一,更具体地说是关于结构的使用。
“结构是一个或多个变量的集合,这些变量可能属于不同类型,它们以一个名称组合在一起以便于处理。”
此摘录与以下基本示例一起可在“The C Programming Language”中找到:
struct point {
int x;
int y;
};
和
struct rect {
struct point pt1;
struct point pt2;
};
到目前为止一切顺利。
我开始编写一个计算线性方程的程序,结果是这样的:
typedef struct point { double x; double y; } point;
typedef struct linearEquation { double mx; double b; } linearEquation;
point 和 linearEquation 具有完全相同的变量,两个 double 。
所以问题是:这些是多余的吗?一个结构是否为两者服务?还是为了可读性而保留它?考虑到函数需要特定的参数并具有特定的返回类型。
例如,我可以用类似的东西替换每一个:
typedef struct twoDs { double a; double b; } twoDs;
你会如何处理?
最佳答案
如果您曾经编写过任何严肃的代码,您应该始终保持不同的类型。它提高了可读性和可维护性,并且编译器能够告诉您错误的分配。
类型化语言的整个概念都是关于这个的——毕竟,它只是内存中的字节,所以你也可以不使用任何类型,直接对字节进行寻址。这可能行得通,但最终会导致不可读性和维护方面的噩梦。
关于c - 冗余或良好实践 - 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50317346/
嗨,我正在考虑开发一种文件传输程序,想知道我是否想要尽可能好的加密,我应该使用什么? 我会用 C# 开发它,所以我可以访问 .net 库 :P在我的 usb 上有一个证书来访问服务器是没有问题的,如果
我创建的这个计算两个数组的交集是线性的方法的复杂度(在良好、平均、最差的情况下)? O(n) public void getInt(int[] a,int[] b){ int i=0; int
我已经能够使用 RTCPeerConnection.getStats() API 获得 WebRTC 音频调用的各种统计信息(抖动、RTT、丢包等)。 我需要将整体通话质量评为优秀、良好、一般或差。
基本问题: 如果我正在讲述/修改数据,我应该通过索引硬编码索引访问文件的元素,即 targetFile.getElement(5);通过硬编码标识符(内部翻译成索引),即 target.getElem
在 Linux 上,我想知道要调用什么“C”API 来获取每个 CPU 的统计信息。 我知道并且可以从我的应用程序中读取 /proc/loadavg,但这是系统范围的负载平均值,而不是每个 CPU 的
在客户端浏览器中使用 fetch api,GET 或 POST 没有问题,但 fetch 和 DELETE 有问题。它似乎将 DELETE 请求方法更改为 OPTIONS。 大多数研究表明是一个cor
我是一名优秀的程序员,十分优秀!