第六天学习记录:C语言基础:如何用Qt调用C语言的函数

本文介绍了如何在Qt环境中进行C语言和C++的混合编程,通过创建.c文件并添加相应的头文件来调用C语言函数,如二分查找。同时,文中提到在VS环境下与Qt环境中使用Sleep函数的不同,即参数单位的区别。
摘要由CSDN通过智能技术生成

因为工作上使用的平台是Qt,并想着用Qt来调试C语言。
在了解到C++、C语言混合编程可以提高效率后。觉得学习一下如何用Qt调用C语言函数。
在学习了相关资料后,发现在Qt中添加.c文件和添加.cpp都是一个方法,只需要将后缀.cpp更改为.c即可。
我们直接运用第五天学习的二分查找为例,写出如下C语言函数。

int ercheck (int x)
{
    int c[]={1,2,3,4,5,6,7,8,9,10};
    int sz=sizeof (c)/sizeof (c[0]);
    int left=0;
    int right=sz-1;
    while (left<=right)
    {
        int mid=(left+right)/2;
        if(c[mid]>x)
        {
            right=mid-1;
        }
        else if(c[mid]<x)
        {
            left=mid+1;
        }
        else
        {
            return mid;
        }
    }
    return -1;
}

当然,为了更好的调用该函数,我们需要在Qt项目中为这个.c文件新增一个头文件。

#ifdef __cplusplus
extern "C" {
#endif  //__cplusplus
#include <stdio.h>
#include <windows.h>
int ercheck (int x);
#ifdef __cplusplus
}
#endif  //__cplusplus

然后在Qt的项目中添加#include “cerfencheck.h”
即可直接调用该函数。
但是在调试其他函数时遇到一个问题,就是在VS环境下,#include <windows.h>后,在.c文件中调用Sleep函数是,是正常的,Sleep后面的参数是毫秒。
但是在Qt中的.c文件这样写会报错。而用sleep函数可以运行,但是首字母小写的sleep后面带的参数是以秒为单位计算。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值