Cpp-1

GCC和G++有什么区别?c++和g++程序的区别?GCC只能编译C语言吗?gcc 1.cpp和g++ 1.cpp有什么区别? gcc命令不止能编译C语言,还可以编译C++(内部等同于调用g++)或Fortran等(编译其它语言相当于调用对应语言的编译器),g++只能编译C或者C++.如果仅仅考虑C语言,参考此公式:g++ == gcc -xc++ -lstdc++ -shared-libgcc. 阅读详情

C++ 简介

在这里插入图片描述

bool类型

/*
    bool类型:
        1.用来描述"真"或"假"
        2.取值:true(真)    false(假)
        3.它占1字节( sizeof(bool) -> 1 )
*/

内联函数

/*
    <内联函数>
        1.它是函数,这一点是肯定的。
        2.通过“内存膨胀”的方式,以空间换取时间,目的是为了提高程序运行的速度
        3.实现方式:给“函数”和“函数声明”加上关键字“inline”
        4.使用限制:若函数体中的代码太多、或者涉及循环,不建议使用“内联函数”
*/

#include <stdio.h>

inline void func(int num);    // 关键字 inline

int main()
{
    func(6);
    return 0;
}

inline void func(int num)    // 关键字 inline
{
    printf("%d\n", num);
}

函数重载

/*
    <函数重载>
        1.在同一个项目中,定义的函数名字可以重复
        2.函数名必须一致
        3.函数的参数列表不同
        4.返回值无要求
*/

#include <stdio.h>

int func(int num)
{
    return num + 100;
}

float func(float num)
{
    return num;
}

int main()
{
    printf("%d\n", func(66));
    printf("%f\n", func(3.14f));    // 注意“函数重载”的“二义性”问题
    return 0;
}

函数参数缺省

/*
    <参数缺省>
        声明函数某个参数的时候,指定一个默认值,调用该函数时
        如果采用默认值,无需指定该参数

        注意事项:“有函数声明”和“无函数声明”省略参数写法有点不同
*/
// 无函数声明

#include <stdio.h>

int func(int num, float value = 10.0f)    // 对于参数,无默认值的在左,有默认值的在后
{
    return 666;
}

int main()
{
    printf("%d\n", func(5));
    return 0;
}

引用

/*
    <引用>
        1.对一个变量或者对象取的别名
        2.定义引用的时候必须要初始化
*/

#include <stdio.h>


int main()
{
    int playerGameAbility = 9;
    int& pga = playerGameAbility;    // 定义引用,必须要初始化

    // 引用只是个别名,所以说,它和被引用的东西对应的是同一段内存,引用是没有自己的内存的
    printf("%d\n", playerGameAbility);
    pga = 666;
    printf("%d\n", playerGameAbility);

    return 0;
}

命名空间

/*
    <命名空间>
        1.命名空间是用来组织和重用代码的编译单元
        2.通过命名空间,来避免冲突,解决重名现象
        3.命名空间关键字 namespace
        4.作用域运算符 ::
        5.命名空间可以嵌套
*/

#include <stdio.h>

namespace NAME_1
{
    int num = 2;
    void func()
    {
        printf("NAME_1 -> func\n");
    }

    namespace NAME_1_1
    {
        int num = 4;
        void func()
        {
            printf("NAME_1_1 -> func\n");
        }
    }
}

int main()
{
    int num = 6;
    printf("%d \n", NAME_1::num);
    printf("%d \n", NAME_1::NAME_1_1::num);
    printf("%d \n", num);

    return 0;
}


// 下面的空间,还是续接上面的空间
// 这种情况也叫“命名污染”,可以合理利用这个污染,在不同地方,完善同一个命名空间
namespace NAME_1
{
    char a;
    int num;
}

// 命名空间的取别名
namespace A = NAME_1;

cin || cout

cin 和 cout(类似 printf、scanf)

#include <iostream>

int main()
{
    int num;
    std::cin >> num;    // std 空间下的 cin(输入)、cout(输出)、endl(换行)
    std::cout << num << std::endl;

    return 0;
}
#include <iostream>
using namespace std;    // 声明使用 std 空间,以后再使用 cin、cout、endl就不用再强调 std::xxx

int main()
{
    int num;
    cin >> num;
    cout << num << endl;

    return 0;
}
#include <iostream>
using namespace std;

int main()
{
    int a, b, c, d, e, f, g;
    cin >> a >> b >> c >> d >> e >> f >> g;    // 不断输入数据,然后自动将数据分配给 a、b、c...
    cout << a << b << c << d << e << f << g << endl;    // 输出 a、b、c...

    cout << "Hello World!" << endl;

    return 0;
}
#include <iostream>
using std::cin;        // (使用)引入 std 下的 cin
using std::cout;    // (使用)引入 std 下的 cin
using std::endl;    // (使用)引入 std 下的 cin

int main()
{
    cout << "Hello World!" << endl;

    return 0;
}

new || delete

new 和 delete(类似 malloc、free)

#include <iostream>
using namespace std;


int main()
{
    // 1.申请单个内存(用来存放一个整型数据)
    int* p1 = new int;
    *p1 = 15;

    // 2.申请单个内存且初始化
    int* p2 = new int(666);    // 括号里面的666,是你想要在这个内存里面存的整型数据
    cout << *p2 << endl;

    // 3.批量申请(连续的内存)注意!批量申请无法初始化
    int* p3 = new int[10];
    for (int i = 0; i < 10; i++)
    {
        p3[i] = i;    // 赋值
        cout << "p3[" << i << "] = " << p3[i] << endl;    // 输出值
    }
    
    // 释放内存
    delete p1;        // 单个内存的释放
    delete p2;        // 单个内存的释放
    delete[] p3;    // 批量内存的释放


    return 0;
}
BitNet.cpp:纯C++实现的1-bit大模型推理引擎 1-bit神经网络是一种将权重与激活值严格限制在{-1, +1}二值空间的极低精度计算范式,其核心原理是将矩阵乘法转化为位运算(如POPCNT)与符号统计,从而绕过传统浮点或整数乘加单元,在硬件层面实现能效跃升。相比INT4量化或FP16推理,1-bit模型显著降低内存带宽需求与功耗,特别适用于嵌入式、边缘设备及离线教学等对资源敏感的场景。BitNet.cpp作为该范式的代表性开源实现,以纯C++构建零Python依赖、内存确定性、指令集深度优化的推理引擎,支持AVX2/NEON加速与裸机部署,使大语言模型 阅读详情

相关推荐

llama.cpp部署 DeepSeek-R1 模型

使用纯 C/C++推理 Meta 的LLaMA模型(及其他模型)。主要目标llama.cpp是在各种硬件(本地和云端)上以最少的设置和最先进的性能实现 LLM 推理。

Stestack的博客 2281

C++基础

在C++中,命名空间不仅可以独立存在,还可以嵌套在其他命名空间中。通过命名空间的嵌套,我们可以进一步组织代码,避免命名冲突。在C++中,我们可以自己定义命名空间,将相关的变量、函数等封装到一个命名空间里,避免与其他部分的代码产生冲突。这是因为C++中的所有标准库内容都放在了一个叫"std"的命名空间里。命名空间的作用是为了避免不同代码之间的名字冲突。的),可以包含数据成员和成员函数。在C++中,结构体与类几乎没有区别(除了默认的访问权限外,结构体默认是。C风格的字符串(字符数组)可以直接赋值给C++的。

2504_90308506的博客 1479

MacBook Air M1配置Vscode C++环境

文章目录下载安装安装相关依赖创建代码配置.jsontasks.jsonlaunch.jsonc_cpp_properties.json 下载安装 从vscode官网下载地址下载安装包,选择Apple Silicon 下载完成,好像会自动安装 双击即可打开 如果诸位的英文水平还可以,建议后面的配置过程直接参考官方文档config-clang-mac 以下是本人的配置过程,供参考。。。 安装相关依赖 C/C++插件 简体中文 lldb适配器 苹果公司为自家系统定制了clang+llvm编译器和

li1358159的博客 8047

探索《cpp1x-study-resource》:一份全面的C++11学习资源指南

探索《cpp1x-study-resource》:一份全面的C++11学习资源指南 在编程的世界里,C++始终以其强大的性能和灵活性占据一席之地。随着C++11标准的引入,语言特性和库得到了显著增强,为开发者带来了新的工具和方法。今天,我们要向大家推荐一个出色的开源项目——,这是一份精心整理的C++11学习资源集合,旨在帮助开发者快速掌握这一现代C++标准。 项目简介 cpp1x-study-re...

gitblog_00054的博客 370

gcc 1.c和g++ 1.c有什么区别?gcc 1.cpp和g++ 1.cpp有什么区别?GCC和G++有什么区别?

先假设1.c只有C语言语法,不涉及C++语法,我们利用-E/-S指令对比二者编译过程中的差异。

编程语言开发、框架原理、编程思想、最佳实践技巧经验分享。致力于各种编程技术的技巧经验干货分享,讲解开发避坑技巧,追踪开发前沿技术,实战展开解决难题。 程序员小迷助您在编程路上越走越好! 681

log4cpp-1.1.1高效日志库实战应用指南

log4cpp作为一个功能强大且灵活的日志记录工具,广泛应用于C++项目中,尤其适用于需要精细化日志管理的系统级开发。其设计借鉴了Java领域著名的log4j理念,采用“分类(Category)-附加器(Appender)-布局(Layout)”三层架构模型,实现了日志逻辑与输出机制的解耦。该结构通过面向对象的方式组织组件,Category负责日志分级与传播,Appender控制输出目标(如文件、控制台、网络),Layout定义格式化样式,三者协同工作,提升系统的可维护性与扩展性。

weixin_34520664的博客 777

cert-manager 全面支持 certificates.k8s.io CertificateSigningRequest:设计决策与落地实践

> 本篇技术指南以 cert-manager 仓库中的设计文档 [design/20210209.certificates.k8s.io-adoption.md](https://link.gitcode.com/i/72dbf3806b99a953ddb69a435935c031) 为核心骨架,结合仓库内 `pkg/controller/certificatesigningrequests/`

gitblog_00390的博客 995

mq4cpp_v1.16:C++消息中间件源码分析与实战

Eclipse CDT允许用户通过安装插件来扩展其功能。以下是一些流行的插件以及它们的主要功能:CMake插件:用于支持CMake项目,提供了创建、配置和管理CMake项目的能力。Doxygen插件:用于生成源代码文档,是项目文档化的有用工具。GDB/LLDB插件:用于调试功能,提供了图形化的调试界面。除了使用现成的插件之外,Eclipse CDT还允许开发者自定义构建步骤。

weixin_36277197的博客 974

vs2008下编译log4cpp 1.1.1

log4cpp 1.1.1从官网上下载 http://sourceforge.net/projects/log4cpp/

sspdfn的专栏 2208

英飞凌 AURIX Development Studio工程移植到Hightec的方法

1. 软件简介 AURIX™ Development Studio是英飞凌针对AURIX TC2XX/TC3XX系列单片机推出了一款免费的软件,集成了iLLD库,内置Tasking compiler和Tasking Debugger,但这两个模块只能用于非商业用途,可供学习和试用。iLLD库是英飞凌为TC2XX和TC3XX Tricore系列单片机提供的底层驱动库,有完善的使用手册,和较好的移植性。 Hightec是一款可以用来开发Aurix系列单片机的编译器,有免费版,可商用,集成GCC编译器,可用UDE

weixin_42967006的博客 7134

信道估计准则演进:从LS、MMSE到LMMSE的工程权衡

本文深入探讨了信道估计准则的演进历程,从LS、MMSE到LMMSE的工程权衡。通过对比分析三大经典算法的数学本质、工程实现及适用场景,揭示了在计算复杂度、实时性和性能之间的关键取舍。文章结合4G/5G基站项目实战经验,提供了算法选型的三维决策模型和前沿发展建议,为无线通信系统设计提供实用指导。

weixin_29327525的博客 282

M1芯片Mac配置vscode调试C++环境

近来闲暇无事,看到同门师兄弟掌握技能甚多,吾也想习得一点傍身之技,所以便开始了C++的学习。同时,吾攒钱终于购置了一台丐中丐版m1 macbook air,爱不释手,故想要在mac上来调试C++程序,万事开头难,mac上的vs和win上的vs有着天壤之别,并且不支持调试C++。头秃,何解?寻遍度娘,终于成功配置vscode调试C++的环境,接下来请听吾细细道来。

qq_45596100的博客 1万+

iTunes登录协议逆向与自动化实现:从抓包到3DES加密的完整实战

网络协议逆向与自动化是提升开发与测试效率的关键技术,其核心在于理解客户端与服务器之间的通信原理。通过分析HTTPS请求、逆向加密算法,可以模拟合法客户端行为,实现批量操作自动化,在自动化测试与账号管理等场景中具有重要价值。本文聚焦于iTunes登录协议,深入剖析了其认证流程,并利用Frida动态调试工具成功逆向出关键的3DES加密环节,为开发者提供了一套从协议分析到Python代码实现的完整解决方案。

479

如何在 C++ 中运行 DeepSeek R1 LLM

DeepSeek R1 是 DeepSeek 公司开发的一款先进的开源大型语言模型。在这里我将尝试下载该模型(我们将使用一个小型的 DeepSeek-R1-Distill-Qwen-1.5B 模型)、转换该模型并通过 llama.cpp 在本地运行该模型。1. 这里我使用的是 Linux Ubuntu-24.04(来自 WSL 2)。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 1万+

焊缝缺陷智能检测:基于 YOLO 的工业质检系统实战

从焊缝缺陷数据集的构建到模型训练,从桌面检测界面到缺陷统计输出,本文覆盖了一套工业焊缝质检系统的完整路线。这个场景的核心难点在数据层面——气孔和裂纹这类小目标的标注质量直接决定了模型的最终表现。建议先在开源数据集上跑通全链路,确认 mAP 达到可接受的水平后,再通过补充特定类型的小目标数据和提升输入分辨率来做精度优化。工业场景中,漏检一个气孔的成本和误报一个假阳性的成本不一样——根据对两类成本的承受力,调整置信度阈值来找到业务上的最佳平衡点。

m0_71589036的博客 202

Zemax与Matlab交互:双胶合优化详细流程

Zemax与Matlab交互:双胶合优化详细流程

weixin_72050316的博客 629

VC2005编译log4cpp1.0

本文介绍如何在VC2005中编译log4cpp1.0 1. log4cpp1.0仅提供了vc6的工程文件,使用vs2005打开工程并进行转换 2. 直接编译log4cppDLL, 提示Custom Build Step时出现错误:因为log4cpp在生成NTEventLogAppender.dll时,需要连接NTEventLogCategories.mc文件。所以,项目设置

CodeJoker的专栏 2046

SAP SEGW 事物码里的 Function Import

开放数据协议(OData)包括标准的 CRUD (创建、检索、更新和删除)操作,这些操作映射到 HTTP 方法的 POST、GET、PUT/MERGE 和 Delete 几类。此外,OData还支持进一步的服务操作:,这些操作可以由HTTP方法GET或POST调用,用于处理不能映射到标准 CRUD 操作的任何内容。通过在数据模型中创建 ,可以在 service Builder 中实现此类额外的服务操作。例如,您可以为以下自定义操作创建函数导入:Work Item confirmation检查航班的可用性虽然

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 994

C++中在一个cpp文件中引用另外一个cpp文件的方法

创建1个func2.cpp 通过include 引入func1.cpp 来使用func1里面的方法(如果有单独的头文件,比如func1.h 可以通过#include“func1.h”)C++中在一个cpp文件中引用另外一个cpp文件 可以通过导入cpp文件或者.h文件来实现,类似python中的import 导入。

小牧在一直在学习,在前进的道路上大家一起学习,进步。 8009

【WLAN】【调试】如何使用Wireshark分析加密的WiFi数据包

- 当配置网卡为monitor 模式的情况下,可以使用 wireshark来抓取空口报文; - 如果WiFi采用非Open加密方式,则从报文中仅能分析到 802.11协议层,更底层(如DHCP、ICMP、TCP等)被加密,此时可以使用 wireshark 来完成解密。 - 解密之后,可以通过icmp、tcp等关键词过滤报文。

一介草民,只为生活。 2985

容器化部署指南——Docker/K8s环境下的OpenClaw实践(附Dockerfile)

通过本文的详细指导,你已经掌握了OpenClaw在Docker和Kubernetes环境中的容器化部署方法。从基础镜像构建到高级部署策略,从开发环境到生产环境,你现在已经具备了完整的容器化部署能力。 容器化技术为OpenClaw提供了灵活、可扩展、可移植的部署方案,能够满足不同规模和需求的应用场景。通过合理使用Docker和Kubernetes,你可以实现高效的部署管理和运维自动化。 在实际应用中,建议根据具体的业务需求选择合适的部署策略,并结合监控、日志、安全等最佳实践,确保系统的稳定性和可靠性。同时

博客 493

CPP: C++ Primer初级_1

百度Apollo平台搭建0 博客介绍1 开始1.4.3_读取不定量数据_Read2 变量和基本类型2.6.2_类3 字符串、向量和数组3.1_命名空间3.5.4_C风格字符串3.5_数组4 表达式4.2_算法运算符4.3_逻辑和关系运算符4.4_赋值运算符4.5_递增递减运算符4.6_成员访问运算符4.7_条件运算符4.8_位运算符4.9_sizeof运算符4.10_逗号运算符6 函数6.1.1_局部对象6.1.2_myfunc.h6.1.2_函数申明6.3附_递归6.4.1_重载作用域6.5.2_内联函数

Morven 466

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

cpp.1 C++类和对象(上)

文章目录第一部分 C++入门1.命名空间2.缺省参数3.函数重载4.引用 第一部分 C++入门 1.命名空间 命名空间实际上就是为了防止命名相同会导致很多的冲突,可以使用命名空间对标识符进行本地化,来避免命名的冲突 使用方式: 1.加命名空间名称及作用域限定符std::cout<<"hello world"<<std::endl; 2.使用using将命名空间中成员引入using std::cout; 3.用using namespace 命名空间名称引入using namespac

Pinksatrfish的博客 368

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

cpp mysql_[mysql] C++操作mysql方法总结(1)

C++通过mysql的c api和通过mysql的Connector C++ 1.1.3操作mysql的两种方式使用vs2013和64位的msql 5.6.16进行操作项目中使用的数据库名为booktik表为book……….(共有30条记录,只列出了部分记录,14-30未列出)一、通过mysql的C api进行操作1、新建一个空项目2、将D:\Program Files\MySQL\MySQL S...

weixin_42350914的博客 439

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

在vscode中遇到C++编译错误:1d returned 1 exit status

在vscode中遇到C++编译错误:1d returned 1 exit status 在这里还有一种错误可能,那就是.cpp的后缀名的问题(¬_¬),我以为在语言模式里选了c++就是cpp文件了,但编译器不这么认为。所以,重命名,加上.cpp就可以了 ...

凉汐博客 2226

在mac m1基于llama.cpp运行deepseek

/bin/llama-cli -m ../../DeepSeek-R1-Distill-Qwen-7B/model-q4_0.gguf -p "你好?转化后GGUF模型文件../DeepSeek-R1-Distill-Qwen-7B/DeepSeek-R1-Distill-Qwen-7B-F16.gguf。量化后的gguf int4文件../../DeepSeek-R1-Distill-Qwen-7B/model-q4_0.gguf。3 测试llama.cpp。2 安装llama.cpp。

liliang199的专栏 896
上一篇: C语言-4
下一篇: Cpp-2
code_stream
博客等级 码龄4年 1238粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值