跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 一个函数方法里如何调用两个 c 文件里的相同标识符的函数?
未分類
9 4 月 2021

一个函数方法里如何调用两个 c 文件里的相同标识符的函数?

一个函数方法里如何调用两个 c 文件里的相同标识符的函数?

資深大佬 : tctc4869 4

初涉 c 语言,想要一些面向对象的编写代码的体验。不让 c 语言工程模块分工的处理更麻烦

最简单的,已知有两个 c 文件,两个 c 文件里有相同标识符名称的函数,在 main 函数调用该两个 c 文件里的相同标识符的函数,不改变两个 c 文件该相同标识符函数的名称的情况下,有什么方法可以做到?

大佬有話說 (13)

  • 資深大佬 : OliverDD

    include 不同头文件?

  • 資深大佬 : codehz

    原则上就会冲突的,如果不能改源码,那就 objcopy 的时候改掉。。。
    所以你现在知道为什么 c++要做名字粉碎了吗

  • 主 資深大佬 : tctc4869

    @OliverDD 头文件方式的话,两个 c 文件的相同函数名编译时,会爆出冲突错误把?

  • 資深大佬 : raysonx

    不能,会出现链接错误。
    有一种迂回的办法是链接到不同的动态库里去,再用 dlopen 或者 LoadLibrary 动态调用。

  • 資深大佬 : anytk

    c 文件同名函数都标注 static, 声明结构体成员包含函数指针指向函数,然后定义结构体常量暴露接口,main 函数再用结构体指针来引用不同的结构体就行了。

  • 資深大佬 : Mithril

    再弄俩文件包成不同名字的导出函数,封到俩动态库里就行了。

  • 資深大佬 : ch2

    C++的 namespace 就是干这个用的

  • 資深大佬 : iceheart

    C 里不能这么搞,得换方案实现你的需求

  • 主 資深大佬 : tctc4869

    @iceheart 模块分工的问题

  • 主 資深大佬 : tctc4869

    @iceheart 其他的方案有哪些?

  • 資深大佬 : yolee599

    c 语言不能有两个相同名字的函数,即使参数不同,文件不同,也不行,编译直接报错。你用 static 限定只能在当前文件使用就是可以的

  • 資深大佬 : zbianbiaos

    结构体封函数指针
    typedef struct
    {
    void (*func1)(void);
    void (*func2)(const char *, int);
    ……
    } funcs_export_t;

  • 資深大佬 : adinxu

    我个人的感觉是,每个语言都有其擅长的事情,去做不擅长的事情那就是事倍功半了,,,

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具