时隔6年,我又重操C语言,是什么让我如此再下定决心?就是不想让自己所学过的知识就此荒废了,我重新以一个C语言初学者的身份(当然,稍稍有点基础,以前的知识忘得没这么快^_^)温故C语言,学习了几天,果真如此,温故而知新矣。

首先我买了一本《C语言深度解剖》第二版,因为,当年就是这本书把我带进了C语言的大门,真正的说明了C语言精髓的书籍,因为不是计算机专业出生,所以以前介绍C的书籍,无可厚非,知其然,不知其所以然。当年看此书是电子版打印的,我想现在,不差这么点钱,买一本。

C语言从1972诞生以来,一直是编程语言界的主角,长盛不衰。

书到了之后,首先介绍的32个关键字,既熟悉又陌生,逐步认识到C语言的本质,心情豁然开朗,指针的操作记忆犹新。当年以为自己“熟悉C语言”,纯粹是为了找工作,如今细细想之,有点大言不惭。Ps:C语言博大精深,嵌入式、Linux等都会涉及。

复习首先在PC上展开,为了尽快进入C语言的调试工作,我先安装了TDM-GCC,原来他已经很久不更新了,不过https://nuwen.net/mingw.html这里有一个非官方的编译版本,也可以拿来用,他是绿色解压版的mingw。

下载了codeblocks-17.12-nosetup.zip,结合TDM-GCC,就可以开始运行C语言,调试C语言了,如果嫌麻烦,可以直接安装codeblocks-17.12mingw-setup.exe。方便省事。

指针就是C语言的精髓。这句话一点都不为过。学习C语言,一定要学会调试,了解内存的基本机制以及C编译器的便宜特性。有的书说C语言的设计有些反人类,吐槽他的一些特性,百家争鸣吧,我反正也没看过那本书。

Codelite当年还是2.5版本,如今已经12.0了,界面我都不会用了,放弃了。

Eclipse和netbeans需要Java环境,占用内存大,我的笔记本电脑,比较旧,也舍弃之。性能好的电脑可以考虑的。

Vim gcc也是编程界十分强大的工具,结合makefile,makefile有陈皓写的《和我一起写makefile》,经典入门资料。

MinGW Developer Studio也不错,轻量,小巧,可以debug,类似visual C++的界面。

DevCpp当年也是不错的IDE,如今在sourceforge里有下载,最新版是5.11。安装的时候,选择fullsetup,不然,即便选择了mingw的路径也不能调试。

Ch,当年有免费的standard版本7.0,是命令行的,可以当作C语言界的IDLE。当年可以作为cfree的编译器之一,不过c-free5.0不免费,也比较旧了,舍弃之,代替的软件有geany,可以直接编译运行C语言。

IDE总而言之是把编译、生成的技术细节给包装起来了,用户只要自动编译运行调试即可,深入学习,还是要接触makefile。那样才能深入理解技术细节。

最后,比较火热的vscode也可以运行调试C语言,但是目前学不会,放弃了,有一个可以实现的方案就行了,不需要这么多的ide平台。学习C语言才是真正的目的。

做一个小总结,追求小巧,快速,推荐MinGW Developer Studio,DevCpp,但代码自动完成比较弱,内存信息无法查看,想要功能全,界面美,调试功能全,可以查看内存信息,推荐codeblocks,但是首次动比较慢。

功能上:codeblocks>DevCpp>MinGW Developer Studio.其实这和项目是否处于正在开发维护状态有关。

开启速度上,三者正好相反。

C语言集成开发环境使用小记的更多相关文章

  1. 【Python基础学习一】在OSX系统下搭建Python语言集成开发环境 附激活码

    Python是一门简单易学,功能强大的编程语言.它具有高效的高级数据结构和简单而有效的面向对象编程方法.Python优雅的语法和动态类型以及其解释性的性质,使它在许多领域和大多数平台成为编写脚本和快速 ...

  2. Go语言集成开发环境之GoLand安装使用

    下载Go语言开发包 大家可以在Go语言官网(https://golang.google.cn/dl/)下载 Windows 系统下的Go语言开发包,如下图所示. 这里我们下载的是 64 位的开发包,如 ...

  3. C语言集成开发环境vs2017的使用技巧之修改快捷键

    首先这里是说编辑C语言内容,其次开发环境是vs2017(全称:visual studio 2017).像这个开发环境体积大,但你安装的时候不要安装到C盘,然后安装的时候选择模块,比如你不开发网站,就先 ...

  4. Go 语言集成开发环境 GoLand 更新至 2018.1.3 版本

    GoLand 2018.1.3 已发布,这是一个全新的更新,尽管没有带来明显的针对 Go 语言的特定改进,但还是提供了许多与 UI,JavaScript 和 SQL 支持相关的错误修复和改进. 可通过 ...

  5. Windows环境墙内搭建Go语言集成开发环境

    1 安装go环境 太简单略 2 安装vs code 找到微软的官方网站,下载Visual Studio Code,官网地址https://code.visualstudio.com/ 安装完成后进入V ...

  6. 软件-集成开发环境:IDEA(Java 语言开发的集成环境)

    ylbtech-软件-集成开发环境:IDEA(Java 语言开发的集成环境) IDEA 全称IntelliJ IDEA,是用于java语言开发的集成环境(也可用于其他开发语言),IntelliJ在业界 ...

  7. C语言编辑编译及集成开发环境

    C语言编辑编译及集成开发环境 编辑器 在不同的操作系统上使用不同的编辑器,保存源代码文件时,文件名应指出程序的功能扩展名应为.c. 编译器 编译器把源代码编译成机器语言的二进制指令即目标代码生成目标文 ...

  8. 【转】linux和windows下安装python集成开发环境及其python包

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  9. Spark:利用Eclipse构建Spark集成开发环境

    前一篇文章“Apache Spark学习:将Spark部署到Hadoop 2.2.0上”介绍了如何使用Maven编译生成可直接运行在Hadoop 2.2.0上的Spark jar包,而本文则在此基础上 ...

随机推荐

  1. CentOS7.5 开启Samba服务

    安装 yum install samba 其依赖关系包samba-client samba-common会自动安装上去 查看状态 service smb status 重启服务systemctl re ...

  2. struts2的作用是什么

    struts2是一种重量级的框架,位于MVC架构中的controller,可以分析出来,它是用于接受页面信息然后通过内部处理,将结果返回. 同时struts2也是一个web层的MVC框架,那么什么是s ...

  3. Xcode7.1环境下上架iOS App到AppStore 流程①

    前言部分 之前App要上架遇到些问题到网上搜上架教程发现都是一些老的版本的教程 ,目前iTunesConnect 都已经迭代好几个版本了和之前的 界面风格还是有很大的差别的,后面自己折腾了好久才终于把 ...

  4. 【BZOJ1396】识别子串(后缀自动机,线段树)

    题意: 一行,一个由小写字母组成的字符串S,长度不超过10^5 思路:论文题 设p为自动机上的合法结点,r为右端点,len=st[fa[p]]]+1 位置[r-st[p]+1,r-len+1]与r-i ...

  5. LOJ 6435 「PKUSC2018」星际穿越——DP+倍增 / 思路+主席树

    题目:https://loj.ac/problem/6435 题解:https://www.cnblogs.com/HocRiser/p/9166459.html 自己要怎样才能想到怎么做呢…… dp ...

  6. Bugku | Easy_vb

    载入ida,直接搜‘ctf’就有了,坑点是不要交“MCTF{XXX}”,要交“flag{XXXX}”

  7. LintCode之删除排序链表中的重复元素

    题目描述: 我的代码: /** * Definition for ListNode * public class ListNode { * int val; * ListNode next; * Li ...

  8. JetBrains CLion

    JetBrains CLion 2017.2.4 ①.激活时选择License server: http://idea.irfen.me/ http://idea.imsxm.com/

  9. golang的数据类型之字符类型

    字符类型使用细节 1)字符常量是用单引号('')括起来的单个字符.例如:var c1 byte = 'a' var c2 int = '中' var c3 byte = '9' 2) Go中允许使用转 ...

  10. if语句的嵌套使用之获取三个数据的最大值

    获取三个数据的最大值: class Hello2 { public static void main(String[] args) { int a = 10; int b = 20; int c = ...