C++入门
文章平均质量分 74
斯文小提莫
品味当下,观自在
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【c++】为什么有了dll和.h,还需要包含lib
摘要: 在C++开发中,即使拥有DLL和头文件(.h),仍需LIB文件,因为LIB在链接阶段为编译器提供DLL函数的符号地址信息,生成正确的调用指令。头文件仅声明函数接口,DLL存放实际代码,而LIB是链接器解析函数位置的关键。缺少LIB会导致链接错误(如LNK2019)。 关键点: 编译阶段:.h文件验证语法,但无函数地址 链接阶段:.lib提供函数偏移量,生成跳转指令 运行阶段:.dll加载实际代码 替代方案:显式链接(LoadLibrary+GetProcAddress)可绕过LIB,但需手动管理函数原创 2026-05-14 23:45:00 · 397 阅读 · 0 评论 -
【基础】c,c++编译过程
摘要: C/C++中,.h头文件仅用于声明函数/变量(不参与编译),.c/.cpp源文件负责实现。编译流程:1)预处理(复制头文件内容);2)独立编译每个源文件为.o;3)链接合并.o文件生成可执行程序。关键点: 头文件避免重复定义,仅提供接口声明; 多文件编译时需确保所有相关.c参与链接,否则报"undefined reference"; 常见错误包括遗漏源文件编译或将实现写入头文件导致重复定义。 核心原则:声明与实现分离,编译单元独立,链接阶段整合。原创 2026-05-07 23:45:00 · 246 阅读 · 0 评论 -
C++ 线程同步
C++提供了五种线程同步方式:1)互斥量(Mutex)用于独占访问共享资源,简单高效但可能阻塞线程;2)条件变量(Condition Variable)用于线程间状态协作,减少CPU轮询;3)临界区(Critical Section,Windows特有)是进程内高效的轻量级锁;4)事件(Event,Windows特有)通过信号状态控制线程唤醒,可跨进程;5)原子操作(Atomic)性能最优,适用于简单数据类型。选择时需考虑性能、跨进程需求和场景复杂度,优先使用标准C++11支持的互斥量和条件变量,Windo原创 2025-09-05 14:17:49 · 969 阅读 · 0 评论 -
C++中cdecl、stdcall、fastcall、thiscall异同——10分钟弄清
本文对比了C++中四种调用约定:cdecl(C默认,调用者清栈,支持可变参数)、stdcall(Windows API标准,被调函数清栈)、fastcall(前两个参数用寄存器传递)和thiscall(C++成员函数专用,this指针通过ECX传递)。通过参数传递方式、清栈责任、适用场景和汇编特征等方面进行对比,并给出典型示例。cdecl适合可变参数函数,stdcall是Windows API标准,fastcall优化性能,thiscall专用于类成员函数。调试时需观察栈和寄存器变化验证调用约定。原创 2025-09-03 14:25:56 · 520 阅读 · 0 评论 -
c++之c语法入门
#include“iosstream”use namespace std;数据输入cin>>”变量名”;数据输出cout<<“输出内容”<<变量名<流程控制顺序条件循环条件控制if else switch case define break(case语句标号,有相同就执行,知道brake) while DoW...原创 2018-03-19 00:44:52 · 295 阅读 · 0 评论 -
C++之面向对象
类class<> { private:私有 protected:保护,子类可用 public:共有 } ::域操作符号 先声明公有后声明私有,用户关心公有。 不声明,默认private。构造函数使得类初始化值(可使用初始化列表,c++有,c#没有),不指定返回值 可重载析构函数“~”函数名称前加,一个类有且只有一个,建议使用virtual,可实...原创 2018-03-20 00:30:44 · 188 阅读 · 0 评论
分享