如何在C中干净地将多个变量传递给函数?

前端之家收集整理的这篇文章主要介绍了如何在C中干净地将多个变量传递给函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究具有不同输出功能的嵌入式系统(数字输出,串行,模拟等).我试图找出一种干净的方法来传递许多将控制这些功能的变量.

我不需要经常传递所有这些,但我希望有一个函数可以读取输入数据(在本例中来自TCP网络),然后解析数据(IE,第3个字节包含8个数字输出的状态(根据该字节中的哪个位为高或低)),并将其放入变量中,然后我可以在程序中的其他地方使用.

我希望该函数与main()函数分开,但这样做需要将指针传递给它要写入的大约20个左右的变量.我知道我可以将变量设置为全局变量,但是我试图通过将一个函数允许编辑该变量,并将其传递给函数,使其更容易调试.

我最好的想法是一个结构,只是传递指针,但不确定是否有更有效的方法,特别是因为只有一个功能需要同时访问所有这些,而大多数其他只需要存储在这一堆状态变量中的部分信息.

所以,无论如何,是否有一种干净的方法可以在需要编辑的函数之间立即发送许多变量?

解决方法

使用带有指向它的结构是一个不错的选择.编写代码的时间可能稍长,但看起来不错.您可以按值传递结构,但按引用传递将避免复制数据.

另一种方法是创建一个由结构组成的结构.然后,您可以通过传递整个事物(只有一个或两个)或结构的单个元素来更有选择性地传递给每个函数的数据.

typedef struct a {
  struct b {
    int b1;
    int b2;
  } b_s;
  struct c {
    int c1;
    int c2;
  } c_s;
} a_s;

猜你在找的C&C++相关文章