C/C++
文章平均质量分 66
C/C++编程语言基础知识
卢奕冰2017
学而思,重实践
展开
-
VS Code安装及(C/C++)环境配置(Windows系统)
五个步骤:1.安装VS Code文本编辑器(系统版)Visual Studio Code - Code Editing. Redefined2.安装C/C++必备插件与简体中文插件:搜索框搜索“C/C++”以及“chinese”。3.下载并安装C/C++的编译器:MinGW-w64 。4.设置系统环境变量并验证;5.配置 VS Code 里的环境(自主生成三个json文件,而不是手动创建)5.1)配置编译器(生成c_cpp_properties.json文件):告诉vscode,编译器在哪原创 2023-02-23 11:07:30 · 4800 阅读 · 0 评论 -
EasyX图形库的下载安装与Dev-C++配置
4.1 将 include 文件夹下的 easyx.h 和 graphics.h 拷贝到 D:\App\TDM-GCC-64\x86_64-w64-mingw32\include\ 文件夹里。4.2 将 lib64\libeasyx.a 拷贝到 D:\App\TDM-GCC-64\x86_64-w64-mingw32\lib\ 文件夹里。4.3 设置链接库:工具 tools -> 编译选项Compiler Options...,然后在 Linker 里面输入 -leasyx,完成。原创 2022-11-08 14:16:05 · 6024 阅读 · 2 评论 -
VS Code配置C语言环境
(1)Windows的IDE,推荐使用Dev C++,版本5.10;(2)MacOS需从AppStore下载编程软件Xcode。原创 2022-10-23 18:10:18 · 4321 阅读 · 0 评论 -
倒计时3分钟
时分秒的数值可由scanf()从键盘获取,自由DIY倒计时长。实际是2022年10月7日,这里显示2122年9月7日?*timeinfo 中的内容如下: 年月日、时分秒、星期、天数。原创 2022-10-07 21:02:01 · 1156 阅读 · 0 评论 -
getch()与_getch()、不能将const char*类型的值分配到const* 类型的实体
getch()与_getch()解决方法:添加预处理项目->属性->配置属性->C/C+±>预处理器->预处理器定义->编辑中添加_CRT_SECURE_NO_DEPRECATE和_CRT_NONSTDC_NO_DEPRECATE或者更换函数将getch()函数更换为_getch()函数即可(2)不能将const char*类型的值分配到const* 类型的实体:项目属性中将C/C++、语言、符合模式改成否/permissive。原创 2022-09-24 21:54:36 · 996 阅读 · 0 评论 -
各种编程语言的应用C/C++/Python/Java/JavaScript
各种编程语言的应用(1)C语言C语言是面向过程的,数据与算法分开。它的重点在于算法和数据结构。优点:结构化编程语言,层次清晰,可以嵌入编程,可以跟硬件打交道,作底层开发。缺点:不太适用于企业级的开发。应用:嵌入式编程,硬件驱动程序设计。(2)C++C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛;优点:多用途,支持多种程序设计风格,还有大量的库。...原创 2022-05-30 07:42:54 · 3068 阅读 · 0 评论 -
C或C++报错:ld returned 1 exit status报错的原因
C或C++报错:ld returned 1 exit status(ld返回1,退出状态)可能是以下原因:1)程序正在运行,无法编译,上次运行的窗口未关闭。程序窗口重复运行没有及时关闭,存在多个打开窗口,得一一关闭了再编译。2)一个项目中有多个 xx.c 文件,将多余的xx.c文件改成头文件即可。3)有函数拼写错误,如:printf拼写成prntf。scanf()写成scan()等。...原创 2022-04-10 21:29:58 · 228828 阅读 · 44 评论 -
VS提示:use _CRT_SECURE_NO_WARNINGS
VisualStudio常见情况处理: _CRT_SECURE_NO_WARNINGS. 【项目】---【属性】---【C/C++】---【预处理器】添加:_CRT_SECURE_NO_WARNINGS原创 2022-01-16 17:57:48 · 2274 阅读 · 0 评论 -
C++Builder 新建过程
File---New…---Console Wizard选择 C++,勾选Console Application(控制台应用程序)。View中(视图),可以打开项目管理器Project Manager写入自己的功能代码:新增*.cpp文件和*.h文件:File---New…---Cpp File/Header File编译程序,生成 *.exe 可执行文件。该工程目录下所有文件如下图所示:原创 2022-02-21 20:24:40 · 961 阅读 · 0 评论 -
Qt支持C语言开发
Qt也能实现C语言的开发。还能显示不一样的颜色,有趣!原创 2021-12-29 20:54:55 · 6667 阅读 · 1 评论 -
C语言基础知识(STM32开发)
C语言基础知识(STM32开发)目录(1)位操作运算符(2)define(3)ifdef / ifndef(4)extern(5)typedef(6)struct(7)static(1)位操作运算符位操作运算符6种:与,或,异或,取反,左移,右移。位与:有0为0位或:有1为1异或:一样为0,不一样为1左移/右移:补0(2)define...原创 2021-11-30 08:55:09 · 962 阅读 · 0 评论 -
C++ Biulder 案例展示 FastNet 网络控件,支持域名不支持IP
C++ Biulder 案例展示:D:\CBuilder5\Examples\FastNet\Echo编译前后文件对比:Echodemo编译前7个文件,编译后增加了8个文件,包含*.exe应用程序。界面文件Form 如下:文本显示、按键 Button、编辑框。NMEcho控件的7个事件:1)OnConnect 连接事件;2)OnConnectionFailed 连接失败事件;3)OnConnectionRequired 连接请求事件;4)OnDisconnect 取消连接事件;原创 2021-08-23 17:31:33 · 382 阅读 · 0 评论 -
内部函数和外部函数
1.内部函数(静态函数) 函数只能被本文件中的其他函数调用。内部函数定义时加static。2.外部函数 外部函数定义时加extern,表示该函数是外部函数,可以供其他文件调用。原创 2021-08-20 17:01:15 · 3179 阅读 · 0 评论 -
函数、变量的声明和定义
1.函数的声明和定义函数一般由两部分组成:1)声明部分;2)执行语句。1.1)函数的声明是函数的原型声明部分的作用:对有关标识符的属性进行说明。标识符例如变量、函数体、结构体、共用体等。1.2)函数的定义是函数功能的确立函数的声明在声明部分,也可以在定义部分。函数的定义肯定不在函数的声明部分,它是一个文件中的独立模块。2.变量的声明和定义(难)2.1)变量的声明...原创 2021-08-20 16:35:45 · 3052 阅读 · 0 评论 -
extern “C“ ... ... _stdcall ...( )
动态链接库的2种使用方式,一种是显式调用。一种是隐式调用。(1)显式调用:使用LoadLibrary载入动态链接库、使用GetProcAddress获取某函数地址。(2)隐式调用:可以使用#pragma comment(lib, “XX.lib”)的方式,也可以直接将XX.lib加入到工程中。编写DLL时,有个重要的问题需要解决,那就是函数重命名——Name-Mangling。因为C和C++的重命名规则是不一样的。如果DLL里的函数重命名规则跟DLL的使用者采用的重命名规则不一致,那就会..转载 2021-08-19 17:08:33 · 233 阅读 · 0 评论 -
函数调用协议 _stdcall 和 __cdecl 和 __fastcall
_stdcall、__cdecl和__fastcall是三种函数调用协议,函数调用协议会影响函数参数的入栈方式、栈内数据的清除方式、编译器函数名的修饰规则等。1.调用协议常用场合_stdcall:Windows API 默认的函数调用协议。_cdecl:C/C++默认的函数调用协议。_fastcall:适用于对性能要求较高的场合。 2.函数参数入栈方式...原创 2021-08-19 11:12:23 · 244 阅读 · 0 评论 -
预处理指令#pragma常用用法
目录(1)#pragma hdrstop(2)#pragma resource "*.dfm"(3)#pragma package(smart_init)(4)#pragma link " "(5)#pragma comment(...)#pragma 是一种预处理指令,可能也是最复杂的预处理指令。作用:设定编译器的状态;或者,指示编译器完成一些特定的动作。格式:#pragma para ...原创 2021-08-19 10:46:22 · 875 阅读 · 0 评论 -
C++中的引用与指针(& 与 *)
& 引用是C++的一个特征,可以把它看作是一个常量指针,自动被编译器逆向引用。 * 指针是对象的地址。引用是给对象的地址取一个别名。引用通常应用于函数参数表中,作为参数实现双向传值,也可以作为一个引用变量使用。原创 2021-08-18 19:02:52 · 1266 阅读 · 0 评论 -
动态链接库(*.dll)与静态链接库(*.lib)
库有两种:静态库(.a、.lib)和动态库(.so、.dll)。 Windows上对应的是 *.lib 和 *.dll。Linux上对应的是 *.a 和 *.so。静态链接【静态库】:在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。静态链接库给别人用的时候,需要提供 *.h 和 *.lib 文件。动态链接库给别人用的时候,需要提供 *.dll 文件(*.h文件只是个说明书)。静态链接库在用的时候,需要编译。...原创 2021-08-18 11:53:56 · 310 阅读 · 0 评论 -
C#和C++的区别
C#和C++的区别是:1、C#代码首先会被编译为CLR(公共语言运行库),然后由.NET框架解析,它是在虚拟机上执行,会自动进行内存管理,不支持使用指针;2、C++将会直接被编译为机器代码,允许使用指针,需要手动组织管理内存。C#和C ++的区别详细说明1、编译区别C#代码首先会被编译为CLR(公共语言运行库),然后由.NET框架解析。C ++代码将会直接被编译为机器代码。2、内存管理的不同C#是在虚拟机上执行,会自动进行内存管理。C ++需要手动组织管理..原创 2021-08-18 11:23:00 · 48434 阅读 · 4 评论 -
C++Builder新建Console Wizard控制台向导程序
C++Builder默认是bcb窗口程序(带有Form界面)。现在需要C++Builder软件编译生成*.exe可执行文件(不需要Form界面),双击【应用程序】直接执行代码功能。(1) File---New…---Console Wizard(控制台向导)(2) 选择 C++,勾选Console Application(控制台应用程序)。(3) View中,可以打开Project Manager(项目管理器)(4) 写入自己的功能代码:(5) 新增*.cpp文件和*.h文件:原创 2021-08-12 16:35:56 · 526 阅读 · 0 评论 -
C++代码实现网络Ping功能
ping(Packet Internet Groper)分组网间探测。测试网络连接的主机或路由器之间的连通性。应用层使用ICMP协议(网际控制报文协议,Internet Control Message Protocol),必须封装在IP协议里统一收发。原创 2021-08-11 11:04:08 · 10293 阅读 · 4 评论 -
UDP通信的点播与组播
20210312 单播、组播、广播单播方式逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;采用组播方式,既可以实现一次传送所有目标节点的数据,也可以达到只对特定对象传送数据的目的。如果采用不区分目标、全部发送的广播方式,虽然一次可以传送完数据,但是显然达不到区分特定数据接收对象的目的。使用UDP协议进行信息的传输之前不需要建立连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的IP地址和端口号,然后将信息封装到一个待发送的..原创 2021-03-12 11:12:43 · 2512 阅读 · 0 评论 -
全局变量与局部变量以及静态
全局变量、静态全局变量、局部变量、静态局部变量————C++变量有6种作用域:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域。1)从分配内存空间来看局部变量在栈分配空间。全局变量、静态全局变量、静态局部变量都在静态存储区分配空间。2)从作用域来看(2.1)全局变量具有全局作用域。(2.2)静态全局变量也具有全局作用域。(2.3)局部变量只有局部作用域。(2.4)静态局部变量具有局部作用域。参考:练习题1和练习题2原创 2020-08-20 22:42:46 · 267 阅读 · 0 评论 -
指针常量和常量指针的分辨
指针变量:用来存放内存地址的变量。指针常量:是常量,但是有指针修饰。常量指针:数据类型前有const修饰,被定义的指针变量就是指向常量的指针变量。常指针常量:指针不能改变,指针指向的值也不能改变。原创 2020-08-20 21:37:35 · 170 阅读 · 0 评论