首页 > 其他分享 >Qt中怎么引用C语言的.h文件?

Qt中怎么引用C语言的.h文件?

时间:2024-06-03 10:32:45浏览次数:42  
标签:__ 文件 Qt cplusplus C++ C语言 myfile 引用 include

Qt窗口项目使用的源文件是.h/.cpp文件,它们是对应C++文件。在实际应用中,你可能有现成的.h/.c文件需要引用。那么,这些文件能够引用吗?又怎么引用呢?以下来讨论这个问题。

本例在ubuntu18中Qt5.8.0的Widgets项目编译通过,估计在CentOS和Windows系统也应该可以通过。

本例要引用的.h文件是myfile.h,一定要将它添加到项目中。项目中添加.h文件的最简便方法是,在项目的快捷菜单“添加-现有文件”来实现。

由于C、C++编译器对函数的编译处理是不完全相同,尤其对于C++来说,支持函数的重载,编译后的函数一般是以函数名和形参类型来命名的。因此,Qt调用C语言的文件时,有所区别。

宏__cplusplus主要解决C/C++混合编程问题,一般用法如下:

#ifdef __cplusplus

extern "C"{

    #include "xxx.h"

#endif

 

#ifdef __cplusplus

}

cpp文件默认定义了该宏,另外,extern "C"的主要作用是实现C++代码能够正确调用C语言代码。

 

本例的关键代码如下:

1、myfile.h文件

#include <stdio.h>

void printHello();

 

2、myfile.c文件

#include "myfile.h"

void printHello() {

    printf("Hello, World!\n");

}

 

3、main.cpp文件

#include "mainwindow.h"

#include <QApplication>

 

#ifdef __cplusplus

extern "C"{

    #include "myfile.h"

#endif

 

#ifdef __cplusplus

}

#endif

 

int main(int argc, char *argv[])

{

    //QApplication a(argc, argv);

    //MainWindow w;

    //w.show();

 

    //return a.exec();

 

    printHello(); // 调用C文件中实现的函数

    return 0;

}

标签:__,文件,Qt,cplusplus,C++,C语言,myfile,引用,include
From: https://www.cnblogs.com/it001xyz/p/18228301

相关文章

  • 数据结构-单链表操作及代码实现(C语言)
    (一)单链表与线性表支持随机访问的特点相比,单链表的特点是适合插入与删除。结构体定义typedefintElementType;//数据元素类型定义typedefstructLNode//单链表结构体定义{ElementTypedata;//数据域structLNode*next;//存储下一个结点的地址}LNode,*L......
  • 【C语言进阶】--- 动态内存管理
    动态内存管理函数1.malloc函数void*malloc(size_tsize);功能:向堆区的空间中申请一块大小为size个字节的空间,返回指向这块空间的指针如果开辟失败会返回一个NULL指针,因此要检查malloc的返回值,避免返回NULL指针后再访问空指针malloc申请的空间,程序退出后会还给操作系统......
  • 轻松拿捏C语言——【文件操作】
    ......
  • C语言文件操作
    一.文件的先关知识1.1什么是文件?                                                  磁盘上的文件是文件,在程序设计的时候,我们一般将文件分为两种:程序⽂件、数据⽂件(......
  • vue 引用第三方库 Swpier轮播图
    本文全程干货,没有废话1.使用npm安装swiper,使用save保存到packjson中npminstall--saveswiper2、把swiper看成是第三方库或者是组件,然后按照,引用,挂载组件,使用组件三步法。3、在script里的exportdefault上面引用这俩。import{Swiper,SwiperSlide......
  • 【C语言项目实战】使用单链表实现通讯录
                                                                  ......
  • MQTT5.0
    文章目录一、MQTT5介绍1.1什么是MQTT1.2MQTT5历史1.3MQTT5设计目标1.4MQTT5应用场景二、为什么要用MQTT5为更健壮的系统更好地处理错误云原生计算的更多可扩展性更大的灵活性和更容易的集成三、MQTT5topic主题cleanSession使用场景概念QoSQos选择使用QoS0:​使......
  • c语言基本概念和数据类型常见问题
    1.两种特殊的转义字符:\ddd和\xdd是什么?• \ddd :ddd表⽰1~3个⼋进制的数字。如: \130表⽰字符X• \xdd :dd表⽰2个⼗六进制数字。如:\x30表⽰字符02.指出里面哪些是转义字符,并给出运行结果printf("%zd\n",strlen("c:\\test\128\abcd.c"));转义字符有: \\ , \1......
  • OC语言学习——UI(一)
      目录  UIView1.UIView的基础概念2.UiView的层级关系UIWindowUIViewController1.UIViewController基础2.UIViewController的使用定时器和视图移动UISwitch控件步进器和分栏控件警告对话框和操作表UITextFieldUIScrollView基础滚动视图的高级功能UIView......
  • c语言:自定义类型(结构体)
    前言:  我们在c语言中学过许多数据类型,有整型,浮点型,字符型,布尔型,甚至还有指针类型,那么自定义类型是什么呢?举个例子:如果我们要在c语言中表示一个整数,我们就会去使用整型去表示它,如果我们要表示一个字符,我们就会使用字符类型表示它们,这些都是c语言中自带的类型,我们只需要记......