首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏海天一树

    小朋友学C语言(2):安装Dev C++编译器

    (二)C语言编译器 Windows上的C编译器有Turbo C,VC 6.0,Visual Studio, Dev C++等。 Turbo C界面看起来不那么舒服。 所以,Win系统下推荐安装Dev C++。 苹果电脑的Mac系统下,直接用标配的Xcode编译器就行。Xcode可以用来编写C, C++, Objective-C和Swift。 (三)安装Dev C++ 1 从网络上搜索并下载Dev-Cpp.5.11 2 双击开始安装 ? 3 同意 ? 4 勾选按默认,Next ? 7 勾选按默认,点击“Finish”即运行Dev C++编译器 ? 8 Next ? 9 页面风格按默认,Next ? 10 OK ? 11 Dev C++成功启动 ? (四)用Dev C++编写第一个程序 1 首先在硬盘里建立一个目录,比如D:\CProjects用来存放即将编写的C程序 2 点击左上角的File-->New-->Project,打开一个新的项目 ?

    3.2K70发布于 2018-04-17
  • 来自专栏诸葛青云的专栏

    最好的 Windows C++ 编译器

    在技术不断更迭的软件开发世界中,市场上 C++ 编译器的数量开始持续呈现下降趋势。 而随着新的高级 C++ 标准(C++ 17、C++ 20)、新的指令集扩展、以及代码优化的更高标准的出现,究竟什么样的编译器才算优秀? 以下为译文: 近年来,市场上C++编译器的数量有所下降。 一些不太知名的编译器已经退出市场,甚至一度非常流行的Borland(Embarcadero)C++编译器现在也不再被维护。 随着新的高级C++标准(C++ 17、C++ 20)、新的指令集扩展(如带有数百条新指令的AVX512),以及代码优化的更高标准的出现,编译器的构建变得更加复杂。 我已经测试了不同的C++编译器,并把测试结果列在了我的C++手册中。在代码优化方面,Gcc和Clang编译器显然是最好的。

    4K30发布于 2019-11-07
  • 来自专栏云计算与大数据

    C++| 编译器预定义的宏

    2 #define __CLANG_ATOMIC_INT_LOCK_FREE 2 #define __CLANG_ATOMIC_LLONG_LOCK_FREE 2 #define __CLANG_ATOMIC_LONG_LOCK_FREE _weak __attribute__((objc_gc(weak))) #define __x86_64 1 #define __x86_64__ 1 ➜ ~ clang++ -dM -E -x c+ + /dev/null ➜ ~ clang++ -dM -E -x c++ /dev/null #define _LP64 1 #define __APPLE_CC__ 6000 #define define __weak __attribute__((objc_gc(weak))) #define __x86_64 1 #define __x86_64__ 1 g++ -dM -E -x c+ + /dev/null ➜ ~ g++ -dM -E -x c++ /dev/null #define _LP64 1 #define __APPLE_CC__ 6000 #define __

    2.7K20编辑于 2022-04-18
  • 来自专栏用户9199536的专栏

    C++|编译器|语义分析-符号表

    编译器进入语义分析阶段。 语义分析- 将变量的定义与各个使用联系起来,type check,并且将抽象语法转换为更简单的适合生成机器代码表示。 在某些语言中,可以同时存在多个活跃的环境,module/class/record各自拥有自己的符号表 命令式风格符号表实现 需求1:查找迅速- hash 需求2: 易撤销 open hashing:

    1.4K20发布于 2021-11-22
  • 来自专栏用户8057608的专栏

    C++系列:编译器是如何工作的

    由于最近都是在和C++打交道,所以今天和大家讨论讨论编译器C++内部是如何工作的。 1.何为编译器? 源代码一般为高级语言(High-level language),如Pascal、C、C++、C# 、Java等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码( ——来源于维基百科 2.内部实现 我们在写C++代码时,是将c++代码写成文本形式保存在一个后缀名为cpp的文件中。那么计算机是如何识别这些代码的呢? 3.编译器做了啥? 另一个问题来了,在转换成后缀名为obj的文件过程中,编译器到底做了啥? 首先,编译器需要预处理我们的代码,即所有的预处理语句都会被先处理。 C++系列...

    1.8K40发布于 2021-04-14
  • 来自专栏编程语言xuetang

    C++编译器之Eclipse安装配置

    下面老九君就给大家简单的讲解下如何使用Eclipse的C++集成版来搭建标准的C/C++开发环境,以及打印出“Hello world!”。 首先,我们需要3种“原材料”: 1.Eclipsefor C++,即C++集成版的Eclispe安装包; 2.JRE安装包; 3.MinGW安装包; 是不是看着挺烦人的,居然要下载安装这么多的东西! +的集成版安装包,下载地址: https://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neon2 如图,小伙伴们可以根据自己的系统来选择对应的版本下载 : 下载后,直接解压文件即可【这里以64版本为例】,解压后目录如图: 2.再去Java的官网下载一个JRE,下载地址: https://www.java.com/zh_CN/download/manual.jsp a.选择工程项目的存放空间: b.新建一个C++项目,如图: c.给C++项目取一个名字,在Project type这里可以选择Empty Project(空白项目)或者选择Hello World

    1.7K50发布于 2019-09-20
  • 来自专栏全栈程序员必看

    c++编译器的作用「建议收藏」

    编译器的部分工作是寻找程序代码中的错误。编译器不能查出程序的意义是否正确。 但它能够查出程序形式上的错误。以下是编译器能查出的最普遍的一些错误: (1)语法错误。程序猿犯了c++语言中的语法错误。 (2)类型错误。 C++中每一个数据项都有相关联的类型。 类型错误的一个实例是传递了字符串字面值给应该得到整型參数的函数。 (3)声明错误。 C++程序中使用的每一个名字必须在使用之前声明。没有声明名字一般会导致 错误信息。

    1K10编辑于 2022-07-07
  • 来自专栏锦鲤安全

    如何给VS安装Intel C++编译器

    一、前言 相比于vs默认的编译器,intel c++编译器编译的exe特征更少、报毒更低,在代码层面免杀时在VT上可以很轻松达到0查杀。 很多新手不知道如何安装intel c++编译器,这次借新电脑重装vs的机会演示一遍intel c++编译器的安装。 二、安装 1. 准备 已安装vs2019或以上版本 下载intel安装包(文末下载,也可以自行去官网下载,唯一的问题是官网下载很卡): 2. 即我不同意收集我的信息,点击install按钮: 这里会有警告,提示安装完成后需要重启,继续点击install安装: 开始安装,等待十几分钟: 点击finish安装完成: 打开vs属性页,可以看到intel C+ +编译器已经有了: 不过以防万一,还是重启一下电脑,完成所有功能的安装。

    3.3K40编辑于 2023-11-20
  • 来自专栏我的技术专栏

    编译器角度看C++复制构造函数

    [C++对象模型]复制构造函数的建构操作 关于复制构造函数的简单介绍,可以看我以前写过的一篇文章C++复制控制之复制构造函数该文章中介绍了复制构造函数的定义、调用时机、也对编译器合成的复制构造函数行为做了简单说明 类的Bitwise copy 语意 《Effective C++》中说到: 如果你自己没声明,编译器就会为它声明一个copy构造函数、一个copy assignment操作符和一个析构函数。 实际上在《深度探索C++对象模型》中对编译器的行为并不是这样描述的。对于默认构造函数与复制构造函数,都需要类满足一定的条件时编译器才会帮你合成。那么需要满足些什么条件呢? 说实话这问题我也很疑惑,查看了许多资料,反复看了《深度探索C++对象模型》后,我最终这样认为:展现了Bitwise copy语意的类编译器不会为它写一个函数实体进行成员的复制。 显然,如果编译器对每个新定义的类对象不能正确地设置好初值,将导致严重的后果。所以编译器需要合成出一个复制构造函数来适当地初始化类对象的vptr。

    1.1K70编辑于 2022-05-06
  • 来自专栏MySQL从删库到跑路

    AIX和Linux C++编译器差别总结

    AIX上使用的是xlc++编译器,Linux上使用的是g++编译器。对C标准中没有严格定义的行为,两个编译器的处理方式不一定相同,会造成一些bug。 问题集中在以下几个方面 BUG类型示例xlc++编译器g++编译器处理方法s=”12” sprintf( r,"%04s",s );s不足四位左侧补’0’ r=”0012”s不足四位左侧补’ ‘ r=

    3.4K40发布于 2020-07-23
  • 来自专栏java,hbase

    Vue2使用富文本编译器

    可以先看看我之前的一篇文章,属于基础吧 在页面使用富文本编译器_超*的博客-CSDN博客 至于为什么还是用TinyMCE,不用ElementUI自带的富文本编译器,因为技穷/(ㄒoㄒ)/~~ 同样参考一篇文章 (进行修改、完善): VUE2下版本的项目加入富文本框实现_vue2富文本从js文件夹加载_我算哪枝小绿植的博客-CSDN博客  1、下载资源 npm install tinymce -S npm install @tinymce/tinymce-vue@3.0.1 2、 开始 这里说一下,按照原博主的步骤是将node_module文件下的tinymce文件,拷贝一份到静态资源目录中。

    72820编辑于 2023-10-15
  • 来自专栏程序人生丶

    C++ 编译器和链接器的完全指南

    C++是一种强类型语言,它的编译和链接是程序开发过程中不可或缺的两个环节。编译器和链接器是两个非常重要的概念。本文将详细介绍C++中的编译器和链接器以及它们的工作原理和使用方法。 编译器 编译器是将源代码转换为可执行文件的程序。在C++中,常用的编译器有GCC和Clang。编译器的主要工作是将源代码翻译成汇编代码,然后再将汇编代码转换成机器码。 编译器还可以进行优化,使得程序的执行效率更高。 在使用编译器时,我们通常需要指定编译器的选项。 因此,我们应该开启编译器的警告信息以及调试信息,以便在开发过程中及时发现和解决问题。 链接器 链接器是将多个目标文件合并成一个可执行文件的程序。在C++中,常用的链接器有GCC和ld。 这些选项可以控制编译器和链接器的优化等级、调试信息、符号表和库文件搜索路径等等。 总结 编译器和链接器是C++编程中不可或缺的工具。

    1.3K20编辑于 2023-12-03
  • 来自专栏大猪的笔记

    编译器除以2的幂说起

    那就是除以2的幂。编译器会将除以 2^n 使用移位进行优化。 我们在编码时可以善于利用 2^n ,比如数组/队列的长度、取余、相除的除数等最好都使用 2^n 。说不定有意外的惊喜。 原码除以 2^n 当一个整数以原码表示时,除以2的幂也可以用移位运算来实现。 执行逻辑右移(前位补0)移位总是舍入到零的结果。 偏置为: (2^k-1) 此时,运算公式变为: x/2^k = (x+(2^k-1))>>k 重新计算 -6170/2^3 -6170使用补码表示是:1110011111100110。 为什么偏置是 2^n-1 2^n-1 用二进制表示是,n个1。 比如 2^3-1=b111 1、假设最右边的n位是000...000,则加上n个1,再进行右移n位,这n个1不会有任何影响。 例如计算 -8/2^2=-2 解: -8=b11000 2^2 - 1=b11 -8+2^2-1=b11011 算术右移2位: b11110 = -2 这说明,正好能除尽,也就没有向0舍入的问题。

    42830编辑于 2023-08-10
  • 来自专栏along的开发之旅

    ndk C++ 编译器的函数名修饰规则

    编译器c++编译器对函数名的解释不一样(c++编译器解释函数名的时候要考虑函数参数,这样是了方便函数重载,而在c语言中不存在函数重载的问题),使用extern "C",实质就是告诉c++编译器,该函数是 C++编译器的函数名修饰规则 C++的函数名修饰规则有些复杂,但是信息更充分,通过分析修饰名不仅能够知道函数的调用方式,返回值类型,参数个数甚至参数类型。 一个采用C语言编译的库应该考虑到使用这个库的程序可能是C++程序(使用C++编译器),所以在设计头文件时应该注意这一点。 其实,VC的编译器会根据源文件的扩展名选择编译方式,如果文件的扩展名是“.C”,编译器会采用C的语法编译,如果扩展名是 “.cpp”,编译器会使用C++的语法编译程序,所以,最好的方法就是使用extern 在Microsoft C++系列的C/C++编译器中,常常用PASCAL宏来声明这个调用约定,类似的宏还有WINAPI和CALLBACK。

    2.5K31发布于 2019-08-29
  • 来自专栏C++核心准则原文翻译

    C++核心准则​CPL.2:如果你必须使用C,使用C和C++的共同子集,并且使用C++编译器编译C代码

    CPL.2: If you must use C, use the common subset of C and C++, and compile the C code as C++ CPL.2:如果你必须使用 C,使用C和C++的共同子集,并且使用C++编译器编译C代码 Reason(原因) That subset can be compiled with both C and C++ compilers, Example(示例) int* p1 = malloc(10 * sizeof(int)); // not C++ int* p2 = static_cast 除非你使用了C扩展选项,C++编译器会强制代码符合C++规范。 原文链接 https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#cpl2-if-you-must-use-c-use-the-common-subset-of-c-and-c-and-compile-the-c-code-as-c

    1K20发布于 2020-10-10
  • 来自专栏FunTester

    JVM C1、C2编译器

    C1、C2编译器线程 C1、C2 编译器线程的默认数量根据运行应用程序的容器/设备上可用的 CPU 数量确定。 下表总结了 C1、C2 编译器线程的默认数量: 中央处理器 c1 线程 c2 线程 1 1 1 2 1 1 4 1 2 8 1 2 16 2 6 32 3 7 64 4 8 128 4 10 C1 、C2 编译器优化 当c1和c2编译器线程消耗大量CPU时,以下是解决该问题的潜在解决方案: 什么都不做 如果C2编译器线程的CPU消耗只是间歇性地偏高而不是持续性的,并且这种情况并未对您的应用程序性能造成明显影响 此参数的作用是仅启用C1编译器,同时禁用C2编译器。 这种方法可以降低CPU消耗,因为禁用C2编译器会使系统只使用较轻量级的C1编译器,但需要注意的是,这可能会影响到应用程序的性能。 如果C2编译器线程数过少,您可以尝试使用 -XX:CICompilerCount=8 这样的参数来手动增加C2编译器线程的数量。

    1.7K00编辑于 2023-12-04
  • msys2配置gcc编译器,windows平台

    安装 MSYS2→更新包→安装 MinGW-w64 版 GCC→配置系统 PATH1.官网下载安装msys22.打开终端msys2- msyspacman -Syu 更新关闭后再次打开二次更新pacman -Su3.msys2-mingw-w64环境安装 64 位 GCC、g++、make、gdb(调试工具)pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64- make mingw-w64-x86_64-gdb4.验证在MINGW64终端执行gcc --versiong++ --versionmake --version5.配置系统环境变量GCC 仅能在 MSYS2

    1.1K11编辑于 2026-01-03
  • 来自专栏学习成长指南

    C++继承(2

    1.如何实现一个不可以被继承的类 (1)我们上一次介绍了这个相关的构造函数和析构函数的派生类的诸多使用注意事项,我们如何实现一个不可以被继承的类呢,下面介绍两个方式; (2)第一个就是使用的我们上次介绍的这个知识 具体而言就会体现在这个我们在主函数里面使用这个类创建对象的时候就会报错; (3)上面介绍的就是一种直接的方式,我们下面介绍一种间接的不可以被继承的方式,就是使用的C++11里面提供的一个关键字final,这个就很直接了,因为这个时候只要我们继承这个父类,这个时候编译器就会报错 ; 2.继承和友元函数 (1)这个地方只需要记住一句话,就是友元函数不可以被继承,如果子类里面也想要使用这个友元函数,我们就需要把这个函数定义为子类的友元,这个也是有办法解决的; (2)友元函数不属于任何一个类 因为在这个下面的菱形继承里面,我们的assistant子类里面,有两份这个person的数据,一份是从student里面获得的,还有一份就是从teacher里面获得的; 这样的话就造成了数据的二义性,当我们进行访问的时候,编译器不知道我们想要访问那一份数据 base2的起始位置,而且可以访问的空间只有base2的范围,但是这个p3指针指向的位置就是这个空间的起始位置,但是这个指针可以访问的范围就会比较大,这个模型他是都可以进行访问的,因为这个指针是一个derive

    15300编辑于 2025-02-24
  • 来自专栏coding

    C++:模板(2

    2.非类型模板参数必须在编译期就能确认结果。 以下用法是错误的,因为N不确定。 2.关键字template后面接空<>。 3.函数名后跟<>,<>里指定特化的类型。 4.函数形参表必须要和模板函数的基础类型参数完全相同,不同的话,编译器会报错。 template<class T1, class T2> class Data { public: Data() { cout << "Data<T1, T2>" << endl; } private template<class T1, class T2> class Data { public: Data() { cout << "Data<T1, T2>" << endl; } private 模板总结 模板的优点: 1.代码可以复用,节省资源,提高效率,便于更快迭代开发,C++标准模板(STL)因此而生。 2.代码更灵活。 模板的缺点: 1.代码膨胀,编译时间变长。

    30800编辑于 2024-11-26
  • 来自专栏c++

    c++】继承(2

    这次带来的是C++中关于继承这部分的一些知识点,如果对你有所帮助的话,可否留下你宝贵的三连呢? 2. 菱形继承 菱形继承是多继承的一种特殊情况。 关于二义性:在通过Assistant对象访问Person里的成员时,编译器无法分清需要访问·的是Student里的,还是Teacher里的。 3. 从这个点也可以看出,多继承算是c++的一个缺陷,在之后的一些编程语言里就没有多继承比如java。 = &d; Assistant* p3 = &d; return 0; } p1、p2、p3都指向哪里?

    6610编辑于 2026-01-14
领券