随笔分类 -  C++/C

C++/C学习
摘要:cpp编译排除 一个c++文件不需要被编译但还保留在工程中(阅读),可使用ExcludedFromBuild,有两种方法实现: 图形化操作 改vs的项目配置文件 图形化操作 在vs的资源管理器选中文件 - 右键 - 属性 - 切到当前的编译配置项(debug/release),有个选项【从生成中排除 阅读全文
posted @ 2024-12-15 15:50 赵青青 阅读(25) 评论(0) 推荐(0) 编辑
摘要:c++ string初始化的几种方式 相对于C#来说,c++中string的初始化方式真的非常多,比如以下都可以用来初始化string: using namespace std; int main() { string str1 = "test01" ;//直接赋值 string str2( 5, 阅读全文
posted @ 2024-07-22 12:43 赵青青 阅读(353) 评论(0) 推荐(0) 编辑
摘要:在C++中,有多种方式可以将格式化的数据写入一个字符串中,以下是其中的几种方式: sprintf函数 sprintf函数可以将格式化的数据写入一个字符串中,其语法如下: int sprintf(char* buffer, const char* format, ...); 其中,buffer是一个指 阅读全文
posted @ 2024-03-31 22:19 赵青青 阅读(605) 评论(0) 推荐(0) 编辑
摘要:c++中的面向对象 构造函数 与C#一样,可以拥有多个构造函数,但python只有一个构造函数 默认的无参构造函数,可以这样写 classname() = default; 构造函数时初始化变量,建议这样写。对于const或自定义类型必须这样写,而对于内置类型几乎是一样的。 MyClass::MyC 阅读全文
posted @ 2024-02-27 23:05 赵青青 阅读(66) 评论(1) 推荐(1) 编辑
摘要:指针和引用 当我们需要在程序中传递变量的地址时,可以使用指针或引用。它们都可以用来间接访问变量,但它们之间有一些重要的区别。 指针是一个变量,它存储另一个变量的地址。通过指针,我们可以访问存储在该地址中的变量。指针可以被重新分配,可以指向不同的变量,也可以为NULL。指针使用*运算符来访问存储在地址 阅读全文
posted @ 2024-02-26 22:18 赵青青 阅读(81) 评论(0) 推荐(0) 编辑
摘要:extern extern 是 C++ 中的一个关键字,用于声明一个变量或函数是在其他文件中定义的。它的作用是告诉编译器在链接时在其他文件中寻找该变量或函数的定义。 在 C++ 中,如果一个变量或函数在多个文件中使用,那么就需要在每个文件中都声明一次该变量或函数。这时就可以使用 extern 关键字 阅读全文
posted @ 2023-09-26 00:10 赵青青 阅读(555) 评论(0) 推荐(2) 编辑
摘要:宏的一些作用,包括但不限于这些 1. 定义一个变量、字符串、类型 2. 定义一个函数、条件表达式 3. 条件编译、调试信息,异常类 4. 定义结构体、命名空间 5. 定义模版、枚举、函数对象 `#define`宏定义在C++中用于定义常量、函数、条件编译、字符串、条件表达式、变量、注释、调试信息、类 阅读全文
posted @ 2023-09-05 09:55 赵青青 阅读(553) 评论(0) 推荐(0) 编辑
摘要:通过gcc或msvc,clang等编译器编译出来的C++源文件是.o文件。在windows上也就是PE文件,linux为ELF文件,在这一步中,调用其它代码文件中的函数的函数地址是未知的(00000),等到链接之后才会替换掉函数地址的 [linux,windows 可执行文件(ELF、PE)](ht 阅读全文
posted @ 2023-09-04 09:56 赵青青 阅读(615) 评论(1) 推荐(1) 编辑
摘要:## 预编译头文件 在 Visual Studio 中创建新项目时,会在项目中添加一个名为 pch.h 的“预编译标头文件”。 (在 Visual Studio 2017 及更高版本中,该文件名为 stdafx.h)此文件的目的是加快生成过程。 应在此处包含任何稳定的标头文件,例如标准库标头(如 ) 阅读全文
posted @ 2023-09-03 10:48 赵青青 阅读(617) 评论(0) 推荐(1) 编辑
摘要:## 为什么要升级msvc++工程版本 对msvc++工程进行vs版本升级,一方面是可以使用较新的C++标准及对64位更好的支持。 首先你需要对msvc++ project文件有一定的了解,主要是vcxproj和vcxproj.filter这两个文件,升级的时候需要手动修改sln和vcxproj文件 阅读全文
posted @ 2023-08-06 22:09 赵青青 阅读(352) 评论(0) 推荐(0) 编辑
摘要:## vs中创建Filter 在一个新项目中右键 - Add - New,默认只有一选项 New Filter。 创建出来的Filter可以理解为是VS的过滤器(虚拟目录),它不会在本地的磁盘上新建目录,而是修改了.filters文件,把这种目录关系记录在.filters文件中。 ![image-2 阅读全文
posted @ 2023-07-30 23:35 赵青青 阅读(859) 评论(0) 推荐(2) 编辑
摘要:## 为什么要查vs版本与内部verion的对应关系? 因为c++的项目需要对应的vs版本,给大型的c++项目升级vs版本是个耗时的工程,所以一般情况下开发者都会安装多个版本的vs。 对于sln文件,以文本形式打开,可以看到一个version,这个是vs内部版本号,而我们安装电脑上的是以年份命名的版 阅读全文
posted @ 2023-06-26 23:15 赵青青 阅读(113) 评论(0) 推荐(0) 编辑
摘要:STL和c++标准库 标准模板库STL部分包含在C++标准库中的软件库。 c++标准库:即以std::开头,但是部分编译器厂商也会把STL的内容放在std:: namespace里面 由于一个常见的误解,您可能会将C++标准库视为“STL”,或者将工具链中C++标准库的实现部分视为“STL实现”。 阅读全文
posted @ 2022-10-09 18:21 赵青青 阅读(323) 评论(0) 推荐(0) 编辑
摘要:三大编译器:gcc,llvm,clang 什么是gcc? gcc 官方网站:https://gcc.gnu.org GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以 GPL(General Public License)许可证所发 阅读全文
posted @ 2022-03-26 09:26 赵青青 阅读(972) 评论(0) 推荐(1) 编辑
摘要:个人体验结果 如果是CMake或者要跨平台的话,建议使用CLion 像我在看书写练习题的话,Clion使用cmake编译c/c++源码更简单上手使用。 如果项目不大,两者都可以。如果关联子项目或第三方库多的话,建议用VS, 编译速度 CLion的工具链设置为MinGW,编译运行速度明显快于使用VS做 阅读全文
posted @ 2022-03-26 09:24 赵青青 阅读(7998) 评论(1) 推荐(0) 编辑
摘要:找c资料从网上找确实更快速,但要想深入地理解vc建议看msdn文档。 vs不同版本支持的c++版本 C++17: vs2017基本支持,vs2015部分支持。 C++14: vs2017就可以完全支持,vs2015基本支持,vs2013部分支持。 C++11: vs2015及以上可以完全支持。vs2 阅读全文
posted @ 2022-03-21 20:16 赵青青 阅读(6272) 评论(0) 推荐(0) 编辑
摘要:运行方法 在clion中安装插件:C/C++Single File Execution 在要执行的cpp文件中添加main函数 在cpp文件的编辑器界面中点右键会出现【Add executable for single c/cpp file】 然后可以看到main函数中有一个可运行的绿色小箭头,可进 阅读全文
posted @ 2022-02-20 20:18 赵青青 阅读(1281) 评论(0) 推荐(0) 编辑
摘要:在windows上使用cmake来c++的程序,遇到一个问题 问题排查 试过在电脑上单独使用gcc是可以编译成功的,那么就可能是IDE集成的问题了 IDE的编译工具链从mingw换成vs,编译通过 让clion以管理员身份运行 问题日志 The output was: 请求的操作需要提升。 Chec 阅读全文
posted @ 2022-02-20 19:34 赵青青 阅读(2188) 评论(0) 推荐(1) 编辑
摘要:Microsoft C++ 生成工具 Microsoft C++ 生成工具 - Visual Studio Microsoft C++ 生成工具通过可编写脚本的独立安装程序提供 MSVC 工具集,无需使用 Visual Studio。 如果从命令行界面(例如,持续集成工作流中)生成面向 Window 阅读全文
posted @ 2022-01-19 19:03 赵青青 阅读(5359) 评论(0) 推荐(0) 编辑
摘要:加密环境 引擎版本:Unity3D 5.3.4 及更高版本 (使用Mono而并非IL2CPP) 操作系统:CentOS 6.2(Final) 加密环境:Android、IOS(暂定) 加密对象:C#源代码(dll文件) 解密方法:libmono.so (重点:加入解密算法并重编译此文件) 加密的目地 阅读全文
posted @ 2016-09-09 14:23 赵青青 阅读(5224) 评论(2) 推荐(0) 编辑