今天看别人的代码,忽然发现有人定义了变量长度的数组,我用msvc new数组new了好几年,原来gcc不用new…巨硬害我!巨硬害我!
巨硬坑太多了,此生不再用巨硬
- msvc不能定义常量长度的数组,而gcc可以
- msvc的memcpy可以不包含cstring,而gcc需要包含
墨衍会员
·
AI 创作全网分发
墨衍智能分发
本文由作者通过墨衍一键同步至各平台
1分发平台
6.7k累计阅读
6.7k平均单平台
已同步平台
优快云
微信公众号
微博
知乎
掘金
百家号
博客园
抖音
小红书
你的文章也可以这样分发
墨衍会员 ¥399起/年,写一次发全网
我也要 →
码龄9年
今天看别人的代码,忽然发现有人定义了变量长度的数组,我用msvc new数组new了好几年,原来gcc不用new…巨硬害我!巨硬害我!
巨硬坑太多了,此生不再用巨硬
C++模板用多了编译报错?手把手教你用CMake跨平台解决MSVC/GCC的bigobj问题
本文详细解析了C++模板编程中常见的bigobj编译报错问题,特别是在MSVC和GCC编译器下的表现差异。通过CMake跨平台解决方案,提供了从基础到高级的多种应对策略,包括编译器能力检测、智能目标选项应用和工程优化建议,帮助开发者有效解决模板密集型项目的编译限制问题。
MinGW、GCC、GNU和MSVC是什么?有什么区别?
MinGW使得开发者能够在Windows上开发和编译使用GNU工具链的应用程序,它提供了一种轻量级的方式在Windows环境下进行开发。MinGW和GCC是用于在Windows环境下进行GNU开发的工具和编译器,而GNU是一个自由软件项目,提供了一系列的开发工具和库。MSVC是微软公司开发的C++编译器和集成开发环境,专注于Windows平台的开发。GNU以开源和自由软件的理念而闻名,为用户提供了更大的自由度和可定制性。GCC是一个跨平台的编译器,提供了许多优化选项和功能,以生成高质量的可执行文件。
编译器不只是翻译器:用MSVC/GCC构建C/C++安全第一道防线
编译器在C/C++工程中常被视作语言翻译器,但其真正价值在于运行前对源代码进行多层级解构——从词法、语法、语义到代码生成,逐层筛选并拦截潜在的安全隐患。本文从编译器与解释器的安全差异讲起,对比MSVC、GCC、Clang三大工具链在检查机制上的不同,并深入介绍如何在VS Code中配置MSVC的cl.exe,通过/W4、/WX、/GS、/sdl等参数将警告视为错误、启用栈保护,以及在GCC/Clang侧使用-Wall、-fstack-protector-strong等选项强化静态审查。同时解析编译器优化与未
一文搞懂C/C++常用编译器
C++编译器编译器全称支持的平台备注MSVCWindows由微软开发,主要用于Windows平台应用程序的开发。Visual Studio系列IDE默认集成了该编译器GCC开源编译器,支持多种平台,Linux下C++开发一般默认会使用此编译器ClangLLVM项目的一部分,提供高效的编译性能。macOS的XCode工具默认集成了此编译器Clang是一个由 LLVM 项目开发的 C、C++、Objective-C 等编程语言的编译器前端。
GCC和VC在定义结构时的区别及编程示例
综上所述,GCC和VC在定义结构时的区别在于访问结构成员的操作符不同。开发人员在编写跨平台的代码时应该注意这些差异,并根据所使用的编译器选择正确的操作符来访问结构成员。在上面的示例中,我们定义了一个指向Person结构的指针person,并使用箭头操作符访问结构中的成员。需要注意的是,在使用箭头操作符之前,我们需要先使用malloc函数为结构体分配内存空间,并在使用完后使用free函数释放内存。希望本文能对你理解GCC和VC在定义结构时的区别有所帮助,并通过提供的编程示例加深你对这一概念的理解。
C++编译器横向对比:五大主流编译器评测
GNU Compiler Collection(简称GCC)是一款由GNU开源组织开发的免费编译器集合,支持多种语言,包括C++。GCC的优点是支持多平台,性能稳定,且有着广泛的社区支持。
【GNU、GCC、g++、MinGW、MSVC】上
本文系统梳理了GNU、GCC、g++等核心概念。
YOLOv8环境搭建+训练自己的数据详细项目
直接按照路径会有问题,找到自己 requirements.txt 文件路径,我这里是pip install -r D:\ultralytics-main\ultralytics-main\requirements.txt。首先去自己的anaconda的安装的envs(虚拟环境),在导航栏输入cmd,进入命令窗口。到官方网站下载yolo模型 ,下载好后解压,里面有个文件requirements.txt。然后安装ultralytics ,这是必须的。
gcc\g++\MingW\MSVC\make\cmake名词解释
一段C代码如果想要运行起来,我们知道,需要经过以下四个步骤:1.预处理:将.c和.h预编译成.i2.编译:3.汇编4.链接完成这整个过程所需要的工具是编译器,而GCC就是这样一款工具。我们平时使用的VS是高度集成的开发环境(IDE,Integrated Development Environment),集成了代码编辑器、编译器、调试器、图形化用户界面,上述的程序编译以及链接全过程都用一步build构建带过了。
Star CCM+中衍生零部件下的阈值应用与区域内删除目标网格
同样的在绘制网格结束后,有时出现负体积网格或质量差的网格,为了节约时间成本,可能会选择将负体积的网格或质量差的网格删除。弹出相应的窗口,在窗口中选择相应的区域①,选择标量函数②(此处以网格体积变化为例),选择模型③,设置阈值④,选择No Dispalyer,会根据需求选择显示,最后点击Create⑥完成创建。此处以温度为例,若出现温度异常点,首先在①栏中勾选Function,然后在下面点击⑤Select,在弹出的Function窗口中选择温度场函数,再点击④Identify,查找温度异常网格数量。
【软件测试】- 公有云、私有云、混合云简介以及如何在公有云与私有云上分别搭建测试环境
公有云、私有云以及混合云是目前云计算领域的三种主要模式。它们之间的区别主要在于部署方式、数据访问和管理控制的不同。在阿里云或腾讯云上使用 Kubernetes 和 Docker 搭建测试环境可以提供高度的可伸缩性和灵活性。这样的环境非常适合于需要在多种配置和条件下进行测试的复杂应用。通过云服务提供的工具和服务,可以轻松管理和监控整个测试过程。在云服务上搭建测试环境涉及选择合适的云提供商、配置云资源、安装和设置所需软件等步骤。### 1. 选择云服务提供商。
【c/c++】C/C++的编译器|编译环境(非常全面的比较)
1、C/C++编译器有哪些? 首先是如雷贯耳的这几位仁兄,MSVC、GCC、Cygwin、MinGW(Cygwin和MingW的英文发音)。 另外还有些小众和新秀,像ICC(Intel C/C++Compiler)、BCC(BorlandC/C++Compiler,快销声匿迹了)、RVCT(ARM的汇编/C/C++编译器,内置在ARM的IDE——RVDS中)、Pgi编译器……其实有一大串,我们 只要熟悉常用的最强大的几款就可以了。 2、主流C/C++编译器|编译环境简介 (1)MSVC M...
【安全设备篇】HVV面试专题
还有就是这个可能是被访问的这个内网系统,本身业务系统存在业务逻辑问题,因为内网所布置的很多业务系统往往不会考虑一些安全性问题,比如在正常的业务逻辑请求中直接带了sql语句,就会触发设备规则产生告警,这一类是属于误报,然后会将此告警上报给研判人员,需要研判组专家和甲方客户确认下是否是该系统存在此业务逻辑问题,并且需要确认告警的源ip在此告警的时间段附近有没有进行操作过。天眼日志分析主要基于系统和应用程序的日志数据来识别安全威胁,而威胁感知则通过收集和分析多种来源的情报信息。理解威胁的性质和威胁背后的原理。
C/C++编译器、IDE、编辑器系统介绍
C/C++编译器、IDE、编辑器系统介绍;MSVC编译器、GCC编译器、G++编、Visual studio
请尽可能地详细说明一个VLA项目的立项训练到落地的全流程
一个机器人VLA项目的全流程是一个复杂的系统工程,它深度融合了机器人学 (Robotics)计算机视觉 (CV)和自然语言处理 (NLP)。其核心挑战在于高质量数据的获取和从仿真到现实的有效迁移。与纯粹的软件AI项目相比,它增加了硬件、物理交互和安全性的维度,但其最终能让AI走出虚拟世界、在物理世界中产生实际价值,这也是其巨大的魅力所在。
[AI工具评测] 为什么功能全面的 Kimi Claw,最终还是被放弃?
《KimiClaw:功能整合与体验落差的AI工具实践》 KimiClaw作为集LLM、Agent、云端执行和SaaS分发于一体的AI工具,理论上具备个人开发者所需的全栈能力:原生整合大模型与Agent、支持云端Docker部署、可生成Web应用并通过飞书协作。然而实际高频使用中暴露三大核心问题:响应延迟导致思考节奏断裂(非流式输出)、云端黑箱执行缺乏可控性(无法实时干预)、系统稳定性不足(网关和隧道偶发故障)。这些体验落差表明,功能完整性不等于使用高效性——对开发者而言,实时响应、执行透明度和系统可靠性比自
GNU、GCC、MinGW与MSVC
GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言编译器。它是GNU项目的一部分,是一个由自由软件基金会(FSF)开发和维护的编译器套件,用于编译各种编译语言,GNU编译器套件包括C、C++、Objective-C、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等),GCC是一个强大的工具集,被广泛用于开发各种类型的软件,从嵌入式系统到大型服务器应用程序。
[QMT量化交易小白入门]-四十九、中小盘策略是否还有未来,市值再平衡策略,年化收益率124%
该策略旨在通过定期再平衡持仓,保持投资组合中股票数量恒定(),并优先持有市值较小的股票。具体来说,策略每两天(period = 2)进行一次再平衡,根据当前市值对持仓进行调整,以实现微盘股的投资目标。中小市值策略对资金量要求有限制,资金量太大由于流动性不足,滑点可能较大,资金量太小,可能不能达到10-20只持仓,来分散风险,10-100w可能是比较理想的,后续可以根据波动率动态调仓,或波动率大于一定值时触发再平衡加入ROE或其他财务指标,或者研发投入强度大的专精特新企业,进行组合优化。
C/C++构建工具链全解析:CMake、Make、GCC、Clang与MSVC详解
在C/C++开发中,编译器与构建工具是绕不开的基础环节。GCC、Clang、MSVC作为三大主流编译器,分别主导着Linux、macOS与Windows生态,它们将源码翻译为机器码,但各自在架构、诊断信息与平台兼容性上差异显著。Make通过描述文件依赖关系实现增量编译,而CMake作为元构建系统,负责跨平台自动生成Makefile或Ninja等构建脚本。理解这些工具的分工与协作,能显著提升工程配置效率。从Linux下CMake+GCC的经典组合,到Windows上MinGW与MSVC的选择,再到常见报错排查
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
C/C++ 常见编译器说明
C/C++ 不同操作系统下的编译器说明
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
Ninja C/C++ 头文件依赖完全教程:从 depfile 到 deps = gcc/msvc 实战
Ninja 是一个以速度为核心的构建系统(build system),专为 C/C++ 大型项目设计。本教程带你从零搞懂 Ninja 的头文件依赖追踪机制:`depfile` 属性如何工作、`deps = gcc` 与 `deps = msvc` 有什么区别、`.ninja_deps` 依赖数据库又是什么——一篇就讲透。 --- ## 为什么 Ninja 要特殊处理头文件依赖? C/C++
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
MinGW 与 MSVC 的区别与联系及相关特性分析
MSVC 与 MinGW
MSVC与GCC的差异(收集中)
1. 变长数组的支持. void f(int len) { char buf[len]; } GCC支持,MSVC不支持 2. 临时变量作为函数参数传递 f(const QString& s);g(QString& s); f("abc"); //MSVC通过,GCC不通过g("abc"); //MSVC和GCC都通过 3
MinGW、MSYS2 、MSVC、gcc/g++
MinGW(Minimalist GNU for Windows)是一套免费的,它包含了 GCC(GNU Compiler Collection)的 Windows 版本,以及一些 Unix 工具,使得你可以在 Windows 上编译和运行 C、C++ 等语言的程序。---编译 C/C++ 代码: Windows 默认没有 C++ 编译器,而 MinGW 提供了 GCC 编译器,能够编译 C 和 C++ 代码。
gcc与mingw64版本介绍
是一个强大的编译器集合,它不仅支持C和C++语言,还支持Fortran、Ada、Java等多种编程语言的编译。在GCC工具链中,gcc和g++是两个核心的编译器工具。gcc是专门用于编译C语言程序的编译器,而g++则是用于编译C++程序的编译器。尽管两者都可以处理C和C++文件,但它们在编译时的行为有所不同。gcc在编译.cpp文件时会按照C语言的规则进行,而不会链接C++的标准库,而g++则会按照C++的规则进行编译,并默认链接C++的标准库。
8890
2222
9417
1787
4003

被折叠的 条评论
为什么被折叠?



