c - 如何在C中定义 "constant"结构

标签 c unix struct header

我正在 Unix 中开发一个相对简单的程序,一个模拟餐厅的客户端-服务器交互。 基本上,进入餐厅/服务员的顾客可以点一份或多份菜肴,通过 FIFO 发送给“厨师”。 菜单必须设置在某个地方并且服务器和客户端都可以访问。它必须是一系列碟形结构。我的第一个想法是将所有这些包含在自定义头文件中: 在shared.h中

   typedef struct _dish{
   char name [MAX_LEN];     //name of food
   int id;                  //ID
   int preptime;            //time needed to prepare it
   } dish;

   typedef struct _request {    
   pid_t cpid;              //client pid
   dish menu [MENUSZ];      //array of dishes
   } request;

这样客户端以“随机”的方式选择菜品并向服务器发送请求。 我的问题是:如何以及在哪里可以列出所有可用菜肴的列表? 该“菜品 list ”必须可供所有客户使用并单独定义。 为了举例说明我的意思,我必须做类似的事情:

  dish dish1;

  dish1.name = "Pasta";
  dish1.id = 1;
  dish1.preptime = 5;

像这样的,一个存储在某处并且可由客户端(最有可能是服务器)访问的列表,可以更轻松地向服务器发送信息,这样我只需发送 ID,服务器就已经知道它是什么食物了。 提前致谢!

最佳答案

如果将它们放在 header 中,则当菜单更改时,您需要重新编译服务器和客户端;根据您的要求,更好的设计是将它们放在服务器上的配置文件中,并让客户端询问 – Christoph

关于c - 如何在C中定义 "constant"结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25510614/

相关文章:

c - 将数组与结构一起使用

c - 使用 func 数组的函数结构

c - 如何打印结构并对其进行 memcpy?

c - C 中的隐式函数声明

c - 如何在 C 中读取二维数组?

linux - 在重定向命令前添加 "&"

bash - UNIX:从 CSV 文件中获取数字的出现次数

mysql 空间不足错误

c - 单链表程序中不打印节点元素

c - 为什么 char 数组需要 strcpy 而 char star 不需要 - 在 C 中使用结构