首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何模拟同一个程序在C中通信的多个实例?

如何模拟同一个程序在C中通信的多个实例?
EN

Stack Overflow用户
提问于 2022-05-19 08:21:21
回答 1查看 70关注 0票数 0

我需要用C编写代码,这些代码最终将在嵌入式系统上运行,其目的是这些嵌入式系统的多个物理实例可以相互通信。

我想先在仿真中测试这一点,但我对C语言不太熟悉。在C++或其他面向对象的语言中,我只想创建同一个类的多个实例,并让它们在仿真中进行通信。我怎么能在C里做到这一点?

编辑:为了避免误解:我感兴趣的是如何启动多个代码实例,以便每个实例都有自己的数据。

EN

回答 1

Stack Overflow用户

发布于 2022-05-19 10:33:01

你对这两台设备的通信方式非常模糊,所以我假设你使用的微芯片(或其他什么)有某种接口,它会接收数字脉冲,并将它们存储在内存中的某个固定地址中。如果是这样的话,您可以创建两个函数:

  • send_data(char data),将发送另一台机器,data
  • receive_data(),将获得最近发送的数据字节

然后,您可以使用C的预处理器:

代码语言:javascript
复制
#if SIMULATION
// Code for simulated data communication
#else
// Code for real data communication
#endif

void send_data(char data) {
    #if SIMULATION
    // Code for simulated data communication
    #else
    // Code for real data communication
    #endif
}
char receive_data() {
    #if SIMULATION
    // Code for simulated data communication
    #else
    // Code for real data communication
    #endif
}

然后,在模拟程序时,只需使用gcc ... -D SIMULATION=1编译即可。

然后,您可以使用某种多线程多次启动main函数。这是我能想到的最简单的方法

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72301033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档