C/C++
文章平均质量分 59
C语言C++相关的知识及我的技术积累
_术士_
博主是位资深的Linux C/C++程序员,技术控;曾任职于华为、中兴、爱立信等大厂,有大型设备开发和管理经验,同时具有超高的技术能力和丰富项目管理经验,欢迎加博主微信cppgeek,加入技术交流群
展开
-
开源+GUI+C/C++
随着开源社区的发展,在众多的GUI开发工具中,开源、免费将变得越来越流行,但是开源的特点是很多东西需要整合,需要动手能力强的人来搭建出一套得心应手的环境,这也是开发者必备的技能之一,下面就介绍了这样一套GUI开发环境的搭建教程。MSW是微软的Visual Studio集成开发环境安装后的工程管理系统,因此使用此种编译方式,需要先把Visual Studio安装好,提供了各个版本的工程文件供编译使用。需要先下载源码,编译出库文件,在你的程序中调用它的库使用,支持多种编译库的方式。1.使用MinGW编译。原创 2023-11-30 16:36:12 · 261 阅读 · 0 评论 -
googletest单元测试框架安装及使用
1、下载googletest 介绍:现在的googletest软件包分两部分,一部分是gtest,单元测试框架,实现对单元测试用例的管理和设计,另一部分是gmock,实现打桩功能,这两个可以结合起来使用,当然如果不使用gmock,只是用googletest也可以。我就不喜欢gmock进行打桩,它使用起来太麻烦,而是使用自己实现的函数hook方式的函数拦截,这样更直接了当,相率高。 下载官网:GitHub - google/googletest: GoogleTest - Googl...原创 2022-05-02 16:14:17 · 4963 阅读 · 0 评论 -
数字转二进制字符串
数字转二进制,并按照字符串打印出来,算简单,直接上代码转子转二进制的转化函数:void Num2BinStr(unsigned int num, unsigned char *pBuff, unsigned int length){ if (NULL == pBuff) { return; } memset((void *)pBuff, 0, length); for (unsigned int i = 0; i < length原创 2022-01-12 17:09:02 · 800 阅读 · 1 评论 -
scanf输入回车问题
目录0、问题1、缓冲区2、问题原因3、scanf特点4、解决办法5、正确的代码0、问题先从问题代码说起:#include<stdio.h>int main(){ char a; int b; printf("输入小写字母,输出大写,输入其他字符,输出原输入字符\n"); for (b = 0; b < 5;b++) { scanf_s("%c", &a,1); if (97 <= a && a <原创 2022-01-10 01:16:30 · 11919 阅读 · 6 评论 -
不用中间变量交换两个数
在我们C语言C++的QQ群(605820538)里,讨论了一个问题:不用中间变量交换两个数,如果没有见过可能一下子还真想不出来,但是如果在网上一搜有大量的文章讲这个算法,有下面三种方法:1、加法可以交换整形、浮点型变量a = a + b;b = a - b;a = a - b;2、异或法只能交换整形变量,无法交换浮点型变量a = a^b;b = a^b;a = a^b;3、乘除法可以交换整形、浮点型变量,但b不能为0a = a * bb = a / ba原创 2022-01-09 01:35:43 · 483 阅读 · 0 评论 -
宏定义之-求结构体成员的偏移长度
目录一、宏定义来源二、实现原理1.0地址是不是会引起系统崩溃2.为什么从0开始,从10,或者100开始行不行三、实际应用一、宏定义来源本文介绍结构体相关的宏定义:offsetof,这个宏定义来源于Linux内核中的实现,在Linux内核中有多处头文件中定义了这个宏,都是为了各自模块自己的使用,以Linux 5.10.90 2022年最新更新的版本来说,有这么多地方定义了这个宏:如果要使用这个宏可以使用stddef.h文件里面定义的,或者直接自己定义一遍。...原创 2022-01-09 00:30:19 · 656 阅读 · 0 评论 -
制作优美的库文件
目录前言一、项目工程二、制作过程1.编译选项2.符号处理总结前言本文讲的是如何制作库文件,你可能会问了,制作库文件不就是一个编译命令吗?没错,生成一个库文件就是用一条编译命令即可达到目的,但是如果制作一个接口完美封装、安全、高效的库文件,还是需要查阅很多资料,了解很多编译原理才能做到的,本文就是我查阅了很多资料,花了几天时间,做了很多次实验而实现的,下面就是我对这个功能的总结。一、项目工程设计一个数组元素的加减乘除作为库对外的接口INT32 ARRAY_ADD(原创 2022-01-05 16:54:42 · 862 阅读 · 9 评论 -
通用Makefile
目录前言一、可配置区域二、通用稳定区域1.取得目录列表2.获得编译命令3.编译依赖关系4.生成可执行文件总结前言现在编译程序已经不是很大的问题吗,编译工具也非常多,比如cmake等,但是这样的工具也需要提前学会他们的语法,按照他们的规则去写一些配置脚本才能用。其实我们完全可以利用shell以及Makefile本身的功能写出一个通用性比较好的Makefile来,下面就是我写得通用Makefile,只需要把这个Makefile放在你工程的跟目录下,然后配置...原创 2022-01-03 23:05:44 · 1217 阅读 · 0 评论 -
关于宏的用法,看这一篇文章就够了
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。本文搜罗汇总了各种宏的用法,列举了一些例子。对于C语言宏定义的使用,看这一篇文章就够了。原创 2021-12-28 17:26:38 · 2958 阅读 · 0 评论 -
Hello World 终极探秘
学习C语言第一节课都是以Hello World开始,都讲C语言的入口函数是main函数,都是从main开始运行。这话是说给初学者的,而实际上不全对。等你真正了解C语言后,程序入口还是是从main开始吗?C语言必须定义一个main吗?下面通过实验带你解开main函数的终极面纱原创 2021-12-28 10:27:03 · 399 阅读 · 0 评论 -
面试题目之数值比较-浮点数比较
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as np import pandas as pd im...翻译 2021-12-10 23:09:47 · 443 阅读 · 0 评论 -
GNU中的预编译指令
#assert: Obsolete Features #define: Object-like Macros #elif: Elif #else: Else #endif: Ifdef #error: Diagnostics #ident: Other Directives #if: Conditional Syntax #ifdef: ...转载 2021-04-07 15:51:31 · 174 阅读 · 0 评论