
c/c++
金士顿
这个作者很懒,什么都没留下…
展开
-
内敛函数在被使用处是什么样的?
内联函数在被使用处会被编译器直接展开,替换为函数体的代码。这种展开行为可以减少函数调用的开销,提高性能,但也可能导致代码膨胀。内联函数适合简单、频繁调用的函数,但不适合复杂逻辑或大型函数。,而不是通过函数调用的方式执行。这种展开行为是由编译器决定的,目的是减少函数调用的开销(如栈帧的创建和销毁、参数传递等)。当调用内联函数时,编译器会尝试将函数体直接嵌入调用处,而不是生成一个函数调用指令。内联函数通常定义在头文件中,并通过。函数)在被使用处会被。在编译阶段,编译器会将。原创 2025-03-03 15:29:05 · 700 阅读 · 0 评论 -
目标文件生成:每个编译单元生成的目标文件(.obj)中都会包含 MyStruct 的定义,但这些定义是类型定义, 为什么链接不会冲突? 内敛函数为什么不重复定义?
它们的目的是告诉编译器如何解释内存布局和类型信息,而不是生成实际的代码或数据。通过理解类型定义和内联函数的特性,可以更好地组织头文件和代码结构,避免链接冲突和重复定义问题。类型定义不会引发链接冲突,因为它们不生成实际的代码或数据。函数)在头文件中定义不会引发链接冲突,因为。,链接器会正确处理重复的定义。在 C/C++ 中,原创 2025-03-03 15:26:51 · 798 阅读 · 0 评论 -
Compile C files in C++ project which do not use precompiled header?
https://stackoverflow.com/questions/13883686/compile-c-files-in-c-project-which-do-not-use-precompiled-headerCan I disable precompile header for .c files in my C++ project?I’m getting these errors when I want to add the .C files to my program for a scripti转载 2025-02-25 10:52:27 · 19 阅读 · 0 评论 -
- **`extern “C“` 本身并不主要表达“外部引用”**,它的核心功能是指定链接规则。 - **“外部引用”作用仍然适用,但需要结合实际场景**,如声明外部变量或未定义的函数时。
的设计目标是解决 C 和 C++ 的互操作问题,而不是专门用于表示外部定义。,而不是明确表示定义在外部。可以同时表达“外部定义”的意思。有时需要同时使用普通的。原创 2024-12-17 15:28:04 · 169 阅读 · 0 评论 -
深入理解 C/C++ 中的不完整类型(Incomplete Type)
不完整类型(Incomplete Type)是一种在编译阶段存在但其内部结构并未被完全定义的类型。它通常通过前置声明(Forward Declaration)来表示,告诉编译器这个类型存在,但现在还不需要知道它的具体结构。// 前置声明,只声明类型存在,不定义其内容这行代码告诉编译器存在一个Person_t类型,但是并没有定义其内容。编译器知道这个类型的名字,但不知道它的大小和内部结构。原创 2024-11-07 13:53:06 · 2109 阅读 · 0 评论 -
深入探讨`g++`与`gcc`:混合编程中的编译链接艺术
在混合使用C和C++进行项目开发时,选择正确的编译器和链接器对项目的成功至关重要。虽然`gcc`和`g++`都是GNU编译器集合(GCC)的重要组成部分,它们在处理混合语言项目时展现出了不同的能力和便利性。`g++`往往被认为是涉及C++代码的混合项目中更优的选择,本文将通过具体的编译示例,详细探讨`g++`相较于`gcc`的优势。原创 2024-03-14 14:39:08 · 764 阅读 · 0 评论 -
深入探索C与C++的混合编程
一方面,现有的大量优秀C语言库为特定任务提供了高效的解决方案,将这些库直接应用于C++项目中可以节省大量的开发时间和成本。通过混合编程,开发者可以在同一项目中利用C的高效性和C++的高级特性,以达到最优的软件设计和实现。通过理解并正确应用这些技术要点,开发者可以有效地在同一项目中混合使用C和C++,充分发挥两种语言的优势,开发出性能优异且易于维护的应用程序。最后,使用C++编译器(或链接器)将上一步骤中生成的所有对象文件以及必要的库文件链接成一个最终的可执行文件或库。文件),生成相应的对象文件。原创 2024-03-14 14:21:35 · 584 阅读 · 0 评论 -
C++中.h与.hpp文件的差异问答
之间的差异更多地是关于向开发者表明头文件的预期用途和内容,而不是文件被编译器处理的方式有何不同。二者之间的选择应符合项目的标准和目标,以实现清晰度和兼容性。文件在C++编程中的区别主要基于约定和偏好,而不是C++语言或其编译器强制执行的任何技术差异。原创 2024-02-18 10:49:51 · 1522 阅读 · 0 评论 -
c语言中的模拟多态性
简单来说,多态性允许函数或方法可以处理多种类型的对象。这意味着一个函数的接口可以用于不同类型的数据,具体执行的操作会根据传入数据的实际类型而变化。假设我们想处理两种类型的图形:圆形和矩形。我们的目标是计算这些图形的面积,但我们希望通过相同的接口来实现这一点。为了模拟多态性,我们将使用函数指针在结构体中存储不同的计算面积的函数。原创 2024-02-08 13:54:02 · 608 阅读 · 0 评论 -
c++类的静态成员变量和非静态成员变量定义和初始化为什么有区别?
这些区别使得静态和非静态成员变量能够适用于不同的编程场景,提供了灵活性和效率,这是C++语言设计的一部分。通过这种方式,C++允许开发者根据不同的需求和上下文来选择合适的数据存储和访问策略。静态成员变量和非静态成员变量之间的区别主要是由于它们的用途和作用域的不同。这些区别反映了C++语言设计中的一些基本原则和目的。原创 2024-01-19 14:57:21 · 496 阅读 · 0 评论 -
深入理解C++中的前置声明和类型定义
前置声明是一种在C++中告知编译器稍后将会有一个类型定义的方式。它通常用于声明类或结构体,使得在完整定义之前就可以引用这些类型。当编译器在后续代码中找到类型的完整定义时,它会回填之前不完全类型的详细信息。public:// 使用结构体在这一点上,即使MyStruct还是不完全类型,编译器仍允许这种使用方式。编译器不会立即解析myStruct的大小和布局,而是暂时接受这个定义。编译器期待在稍后的代码中找到MyStruct的完整定义。int x;int y;当编译器遇到MyStruct。原创 2024-01-19 10:35:49 · 472 阅读 · 0 评论 -
深入理解C++中的类成员变量:内存分配与初始化
在C++编程中,正确理解类成员变量的内存分配和初始化对于编写高效且健壮的应用程序至关重要。这篇博客旨在深入探讨这些概念,尤其是在C++11及以后版本中引入的成员变量默认初始化器的使用。原创 2024-01-19 09:38:45 · 641 阅读 · 0 评论 -
C++中 `static` 成员变量的初始化:一个全面的指南
staticstatic尽管在类定义中声明了static成员变量,你还需要在类外部定义和初始化它。这通常在类定义的.cpp文件中完成。// 定义和初始化静态成员变量正确地使用和初始化static成员变量是C++编程中的一个关键方面。希望本文能帮助你更好地理解这个概念,并在你的项目中有效地使用static成员变量。原创 2024-01-19 09:29:56 · 4378 阅读 · 0 评论 -
extern “C“解决链接问题
转载地址:https://baike.baidu.com/item/extern%20%22C%22/15267013。转载 2022-11-10 16:02:59 · 665 阅读 · 0 评论 -
c++ new 与malloc有什么区别
转载地址:https://www.cnblogs.com/ywliao/articles/8116622.html转载 2022-07-05 15:11:55 · 83 阅读 · 0 评论 -
C++一些注意点之operator new 和new operator
https://blog.youkuaiyun.com/lsjseu/article/details/9206883https://blog.youkuaiyun.com/lsjseu/article/details/9206883转载 2022-07-05 14:53:30 · 135 阅读 · 0 评论 -
int GetMonth( ) const throw( );后面的throw( )什么意思?
转载地址:https://blog.youkuaiyun.com/qq276592716/article/details/7625703异常规范(Exception Specifications)throw后面规定了该函数允许抛出什么类型的异常,空表示不抛出任何异常。这样写函数声明后,你在实现GetMonth时就不能有任何throw语句。如果写为 int GetMonth( ) const throw(string);函数实现时可以抛出string对象,其它类型的对象不允许。...转载 2022-07-05 14:03:39 · 167 阅读 · 0 评论 -
C++异常类型以及多级catch匹配
转载地址:http://c.biancheng.net/view/2331.html转载 2022-07-05 13:31:06 · 145 阅读 · 0 评论 -
C++中的mutable关键字
转载地址:https://www.cnblogs.com/yongdaimi/p/9565996.htmlmutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。我们知道,被const关键字修饰的函数的一个重要作用就是为了能够保护类中的成员变量。即:该函数可以使用类中的所有成员变量,但是不能修改他们的值。然而,在某些特殊情况转载 2022-07-04 13:58:57 · 144 阅读 · 0 评论 -
const、volatile和restrict的作用和用法总结
constconst(constant)关键字可修饰变量、函数参数、返回值或函数体。定义只读变量。限制函数参数。防止意外修改。增加程序安全性和可靠性。如const char *p表示,p指针指向的值不可更改,就是这个指针不能用来修改数据如char *const p表示,p指针指向的地址不可更改如const int arr[]则数组内的值都不能修改const char *const p表示,所指向的数值和地址都不能变const double locked[4]double *pc=rates转载 2022-07-04 13:54:59 · 267 阅读 · 0 评论 -
C为什么C++内置类型的局部变量不能默认初始化
https://blog.youkuaiyun.com/qq_36946274/article/details/80607439转载 2022-07-03 21:02:19 · 257 阅读 · 0 评论 -
左值右指解释的比较好的
https://chowdera.com/2022/03/202203100552526454.html转载 2022-07-02 09:36:51 · 83 阅读 · 0 评论 -
C语言中左值和右值的区别
https://www.dotcpp.com/wp/692.html转载 2022-07-01 18:04:27 · 127 阅读 · 0 评论 -
什么是多范式编程语言,其中的“多范式”是什么意思?
转载地址:https://www.zhihu.com/question/20428688#:~:text=%E5%A4%9A%E8%8C%83%E5%BC%8F%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E4%B8%AD,%E8%8C%83%E5%BC%8F%E6%9D%A5%E6%92%B0%E5%86%99%E7%A8%8B%E5%BA%8F%E3%80%82编程范式是指编程时的指导思想。放在编程语言里,则代表了这个语言的设计方向,即语言是为了便于遵循某种,或某些思想编程而转载 2022-06-29 17:58:48 · 1650 阅读 · 1 评论 -
while(cin>>str)如何结束循环
转载地址:https://blog.youkuaiyun.com/weixin_42731241/article/details/83216661问题描述:在使用while(cin>>temp)进行循环接收输入时,会遇到while循环跳不出来解决方法:输入完数据后->回车->ctrl+z->回车至于为什么https://blog.youkuaiyun.com/misayaaaaa/article/details/53332219这里讲的比较详细,但是他只要说了ctrl+z———————————转载 2022-05-10 10:36:48 · 956 阅读 · 0 评论 -
c位域学习
https://zh.m.wikipedia.org/wiki/%E4%BD%8D%E6%AE%B5 位域原创 2022-01-03 20:29:00 · 476 阅读 · 0 评论 -
64位进程调用32位DLL详解
https://blog.youkuaiyun.com/nie2314550441/article/details/49867735https://stackoverflow.com/questions/52601470/calling-a-function-of-a-32-bit-dll-from-a-64-bit-application原创 2022-04-27 13:11:42 · 3021 阅读 · 0 评论 -
用depends 来解决dll文件缺失等相关的问题 使用方法
https://blog.youkuaiyun.com/gengxingguang/article/details/107046616转载 2022-02-15 14:16:20 · 517 阅读 · 0 评论 -
c++ CRTP研究学习
https://blog.youkuaiyun.com/weixin_30446613/article/details/96499365https://blog.youkuaiyun.com/weixin_40683787/article/details/119957270https://blog.youkuaiyun.com/weixin_34351321/article/details/91817793https://blog.youkuaiyun.com/weixin_34351321/article/details/91817793htt原创 2022-01-27 16:12:27 · 825 阅读 · 0 评论 -
飞哥讲代码23:C/C++内存空洞
http://lanlingzi.cn/post/technical/2021/0307_code/转载 2021-11-21 09:25:20 · 560 阅读 · 0 评论 -
try catch里面try catch嵌套
try catch里能否内嵌try catch?答案是肯定的。但是等内层try catch出异常之后是个什么执行顺序呢?看下面代码 static void Main(string[] args) { try { Console.WriteLine("----------------------外层try------------------------------"); error转载 2021-07-30 17:02:39 · 17818 阅读 · 6 评论 -
Function pointer to member function
转载地址:https://stackoverflow.com/questions/2402579/function-pointer-to-member-functionI’d like to set up a function pointer as a member of a class that is a pointer to another function in the same class. The reasons why I’m doing this are complicated.In th转载 2021-07-20 10:59:31 · 232 阅读 · 0 评论 -
C++中public,protected,private派生类继承问题和访问权限问题
当一个子类从父类继承时,父类的所有成员成为子类的成员,此时对父类成员的访问状态由继承时使用的继承限定符决定。1.如果子类从父类继承时使用的继承限定符是public,那么(1)父类的public成员成为子类的public成员,允许类以外的代码访问这些成员;(2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员;(3)父类的protected成员成为子类的protected成员,只允许子类成员访问;2.如果子类从父类继承时使用的继承限定符是protected,那么(转载 2021-06-22 13:15:30 · 2494 阅读 · 0 评论 -
c/c++ 数组是下标为什么可以是负值
转载地址:https://blog.youkuaiyun.com/qq_23130167/article/details/44987859?utm_source=blogxgwz0 #include <iostream>using namespace std;int main(int argc, const char * argv[]) { int x[1024]; ...转载 2018-10-19 15:07:52 · 868 阅读 · 0 评论 -
函数名&函数名取地址
函数名&函数名取地址有时看到如下的代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 /*****************************/ #...转载 2018-10-22 14:55:34 · 1417 阅读 · 0 评论 -
【C++】 私有成员变量的理解
转载地址:https://www.cnblogs.com/oraser/p/5888116.html【C++】 私有成员变量的理解私有成员变量的概念,在脑海中的现象是,以private关键字声明,是类的实现部分,不对外公开,不能在对象外部访问对象的私有成员变量.然而,在实现拷贝构造函数和赋值符函数时,在函数里利用对象直接访问了私有成员变量,因而,产生了困惑.下面以具体实例进行说明:...转载 2018-10-25 13:56:03 · 1134 阅读 · 0 评论 -
检查new的返回值及new的用法
我们知道,使用malloc/calloc等分配内存的函数时,一定要检查其返回值是否为“空指针”(亦即是检查分配内存的操作是否成功),这是良好的编程习惯,也是编写可靠程序所必需的。但是,如果你简单的把这一招应用到new上,那就不一定正确了。我经常看到类似这样的代码: int* p = new int[SIZE]; if(p==0) //检查p是否空指针 ...转载 2018-10-25 15:29:43 · 1684 阅读 · 0 评论 -
strtok字符串分离
#include <iostream>#include <stdio.h>#include <string.h>using namespace std; int main() { char s[] = "my name is lmm"; char *p; const char *delim = " "; p = str...原创 2018-11-27 11:16:17 · 218 阅读 · 0 评论 -
strtok的问题 [问题点数:20分,结帖人ArrayTang]
https://bbs.youkuaiyun.com/topics/390692289收藏帖子 回复ArrayTang结帖率 38.46%#include <string.h>#include <stdio.h>main(){ char *s="Golden Global View"; char *d=" "; ...转载 2018-12-07 15:48:58 · 173 阅读 · 0 评论 -
assert 未定义的引用
#include <assert.h>ok转载 2018-10-09 17:19:08 · 2796 阅读 · 0 评论