分享

C语言核心技术-C语言概述与开发环境搭建

 山峰云绕 2019-10-28

C语言概述

C语言发展简史

  • 起源

https://m./group/6752677559860724227/?app=news_article&timestamp=1572252620&req_id=201910281650200100260760263304B4D7&group_id=6752677559860724227

1972年,贝尔实验室的Dennis Ritchie和Ken Thompson在开发Unix操作系统时设计了C语言,该操作系统的90%以上的代码都是由C语言实现,后期的Linux,macOS,Android,IOS都是基于Unix发展而来的。

  • 标准

1987年Dennis Ritchie和Brian Kernighan编写了The C Programming Language第一版是公认的C标准实现,而没有定义C库。

而后期ANSI/ISO先后于1990年、1999年和2011年发布了C90标准、C99标准和C11标准,该标准定义了C语言和C标准库。

C语言特性

C语言作为面向过程的高级程序设计语言,能够轻松的实现自顶向下的规划、结构化编程和模块化设计,这样使得程序结构更加简洁,可扩展性强以及更加容易维护。

而且C语言有着高效(执行速度快)、功能强大(嵌套汇编)以及可移植性(标准库可移植)、功能强大等优点,而且也存在着对系统平台库依赖严重,由于编程风格自由,经验不足也会容易导致出错,编写代码实现周期长,同样的代码在不同的操作系统(或者编译器)下可能会有不同的表现等缺点。

C语言应用场景

C语言偏向硬件驱动、操作系统、底层应用(数据库、编译器)、嵌入式应用开发、游戏引擎等应用场景。

硬件驱动的绝大部分实现是由C语言和汇编语言实现的。

主流操作系统(Unix,Linux,macOS,Windows,Android,iOS)的底层实现都是由C语言和部分汇编实现的。

C++,Java,Python,Swift的编译器或者解释器都是由C语言实现的。

Git,Nginx,Redis,MySQL,Apache,Linux Kernel都是使用C语言实现的,而且都是开放源代码的,大部分代码可以在GitHub中获取到,可以通过阅读源码提升自己的设计和编码能力。

使用Visual Studio Code+gcc 开发C程序

Visual Studio Code下载与安装

HelloWorld是学习一门编程语言的入门程序,如果你能独立编写并运行HelloWorld,那么就意味着迈入了编程的大门了。

Visual Studio Code是微软推出的一款开源、跨平台(Windows,Ubuntu,macOS)的编辑器,这里使用它来编写C语言的源代码,当然除了编写C代码之外,还可以用来编写C++,Java,Python,Go,JavaScript,PHP程序等等。

为什么首先要使用Visual Studio Code来编写第一个C程序呢,因为Visual Studio Code只是一个编辑器,用于编写源码,并不提供编译或者解释运行程序的功能。

通过它来对比之前介绍的IDE,体验下使用IDE开发程序带来的好处,也有利于理解IDE背后的相关机制。

在使用Visual Studio Code之前首先去官网下载

然后傻瓜一键式安装,安装完成以后启动Visual Studio Code会看到启动界面。

关于Visual Studio Code的详细使用可以参考官方提供的文档。

使用Visual Studio编辑源文件

1.在系统的D盘下创建目录vs_code\c用于存放C语言的源程序(即C代码)

2.在Visual Studio Code中将D:\vs_code\c目录添加到工作区的文件夹

选择D:\vs_code\c文件夹作为Visual Studio开发C程序的工作区

3.在工作区D:\vs_code\c目录下创建源文件helloworld.c,C语言的源文件都是以.c结尾的,并编写以下内容

#include <stdio.h>int main(int argc, char *argv[]){ printf('Windows10 1903 & Visual Studio Code Hello World With C \n'); return 0;}

helloworld.c

gcc安装与配置

当源文件编辑好完成以后,需要安装和配置gcc,因为Visual Studio Code并没有提供编译C程序的功能。

如果你之前已经下载安装过Qt,那么恭喜不用额外安装gcc,因为Qt已经集成了编译器。

只需要将gcc在Qt的bin目录: C:\Qt\Qt5.13.0\Tools\mingw730_64\bin 添加至PATH环境变量即可。

当在终端上执行gcc命令时系统会从该目录寻找gcc对应的可执行程序gcc.exe。

当gcc的PATH环境变量配置成功之后,便可以打开命令提示符(即终端),输入gcc -v便可查看gcc版本信息

  1. 编译源文件

  2. 在源文件helloworld.c所在的目录地址栏(例如D:\vs_code\c)输入cmd并回车即可打开终端,此时终端的路径正好是在D:\vs_code\c,然后使用gcc helloworld.c 编译源文件,Windows上gcc默认会编译生成可执行文件a.exe,Linux下gcc默认会编译生成a.out。

然后在终端上运行a.exe,程序会将字符串Windows10 1903 & Visual Studio Code Hello World With C输出到终端上。

如果想要改变编译生成的可执行文件名称,使用gcc时可以使用-o选项实现

理解gcc编译过程

刚才在使用gcc编译helloworld时一次性编译链接生成了可执行文件(例如helloworld.exe),而实际上gcc在编译程序时要经历预处理、编译、汇编、链接四个步骤,每个步骤gcc都提供了对应的选项(链接除外),并且每个步骤生成的文件后缀名也是不一样的。

这里编写源文件gcc_compile_option.c,用于测试gcc的各个编译选项,如果想要查看gcc命令的所有选项,可以使用gcc --help查看所有选项及其说明

#include <stdio.h> #define PI 3.141592 //宏定义int main(int argc, char *argv[]){ printf('PI = %f \n',PI); return 0;}
  • 预处理

预处理主要是头文件包含、宏替换以及条件编译,预处理阶段不会做语法检查。

预处理生成的文件后缀名通常是.i,而对应的gcc选项是-E。

gcc预处理命令案例

gcc -E gcc_compile_option.c -o gcc_compile_option.i

这里预编译会将头文件stdio.h的内容复制到gcc_compile_option.i头文件中,并且将使用#define PI 3.141592的宏进行替换,因此最后运行程序时会看到终端上输出PI =3.141592

  • 编译

编译是将预处理完成的文件编译成汇编文件。

编译生成的文件后缀名通常是.s,而对应的gcc选项是-S。

gcc编译案例

gcc -S gcc_compile_option.i -o gcc_compile_option.s
  • 汇编

汇编是将汇编文件生成对应的二进制文件。

汇编生成的文件后缀名通常是.o,而对应的gcc选项是-c。

gcc汇编案例

gcc -c gcc_compile_option.c -o gcc_compile_option.o
  • 链接

将各个二进制文件加上库函数、启动代码链接生成可执行文件。

链接没有特定的gcc选项,windows上的可执行文件名为.exe,linux上可执行文件后缀名为.out。

gcc 链接案例

 gcc gcc_compile_option.o -o gcc_compile_option.exe

gcc 预处理、编译、汇编、链接、运行

C语言集成开发环境搭建

目前主流的操作系统(Windows,Linux,macOS)都有完善的C语言集成开发环境,用于编辑、编译、调试、打包部署C程序。

C语言集成开发环境

Windows作为世界上最流行的桌面操作系统,当前最新版本为Windows10 1903,VisualStudio作为Windows上最强大的集成开发环境,可以开发Windows软件,游戏,Web应用等等,最新版本为VisualStudio2019 16.2.2。

Visual Studio 2019启动界面

Ubuntu作为最受欢迎的桌面版Linux系统之一,推荐采用跨平台的集成开发环境Qt来编写C/C程序。

QT Creator

macOS平台推荐使用XCode来编写C/C程序,而且XCode在macOS系统上是自带的,无需额外安装。

XCode

除此以外还有些跨平台的C/C++ 开发工具,例如来自Jetbrains公司的CLion也可以用来编写C/C++程序。

CLion

关于IDE的安装以及使用,它们的官网都提供了详细的教程,同学们可以自行去查阅。

C语言学习过程中会使用Windows10 1903+Visual Studio 2019作为主力开发环境,如果没有特别的说明,默认的环境就是Windows10 1903和Visual Studio 2019。

使用Visual Studio 2019开发C程序

  1. 创建新项目

2.选择基于C++的空项目

3.配置新项目

设置项目名称为c-core-foundational,

项目路径位于d:workspace\c\visualstudio2019,

解决方案名称为c-core。

Visual Studio 2019中一个解决方案会有多个项目。

配置新项目

项目概览

4. 创建筛选器

筛选器用于存放不同阶段的代码,在项目的源文件下创建筛选器net/ittimeline/c/foundational/object

5.编写helloworld

首先选中筛选器net/ittimline/c/foundational/object

然后选择基于C++文件,创建源文件helloworld.c

然后编辑源文件

#include <stdio.h>int main(int argc, char *argv[]) { printf('Windows10 1903 & Visual Studio 2019 Hello World With C \n'); return 0;}

6.gcc编译运行helloworld.c

首先选择项目c-core-foundational,然后鼠标右键选中在文件资源管理器打开。

此时会打开文件资源管理器,并且路径是D:\workspace\c\visualstuido2019\c-core\c-core-foundational

在文件资源管理器的地址栏输入cmd,然后使用gcc编译、运行程序

helloworld详解

hello world说明

#include <stdio.h> #include <stdlib.h>int main(int argc, char *argv[]) { printf('Windows10 1903 & Visual Studio 2019 Hello World With C \n');  system('pause'); return 0;}

此段程序是调用了跨平台的输入输出函数实现在控制台输出Windows10 1903 & Visual Studio 2019 Hello World With C 并换行,然后等待用户输入任意键(通常习惯按回车键)后程序退出。

虽然该程序十分简单,但是是C语言中能够运行的最小程序。后面编写的程序都是在该基础之上扩展的。

#include <stdio.h>详解

C语言中以#开头的表示编译时预处理阶段需要处理的。

因为在main函数中使用了printf函数,但是该函数的声明是在标准输入输出文件stdio.h头文件中。因此需要使用#include <stdio.h>将其包含在源文件helloworld.c中,该文件位于系统目录 C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h

而该函数的实现在系统库文件中。

如果想要查看程序依赖了哪些库文件,Ubuntu下可以使用ldd命令查看

std表示跨平台的,所有以std开头的头文件中声明的函数都是可以跨平台(windows,linux,macOS)使用。

stdio表示标准输入输出,printf函数就是用于输出,可以将''包含的内容数据输出到控制台,文件甚至是网页。而输入函数有scanf,用于读取键盘的输入,实现程序的交互。该函数后期再介绍详细使用。

如果想要在Visual Studio中查看系统提供的函数的定义,可以选中函数,然后按快捷键F12便可查看,而返回可以使用Ctrl+-实现。

为了深入理解#include的作用,这里编写一段程序。

首先在c-core-foundational的头文件创建和源文件一样目录的筛选器net\ittimeline\c\core\foundational\object

然后定义头文件include.h

然后将之前编写的源文件helloworld.c的内容复制到include.h头文件中

并在源文件的net\ittimeline\c\core\foundational\object\目录下创建源文件include.c,该源文件中只需要使用#include <include.h>包含之前编写的头文件即可。

然后运行程序,如果发现如下错误

1>include.obj : error LNK2005: _main 已经在 helloworld.obj 中定义

是因为在Visual Studio 中,解决方案的一个项目只能有一个main函数,如果包含了多个源文件,把其他源文件的main函数重命名成其他函数即可。

然后再次运行程序,程序结果和之前的helloworld运行结果是一样的。

main函数

main函数是c/c++/java程序的入口函数,有且只能有一个,当程序执行时系统会自动调用唯一的main函数,程序从main函数开始执行。如果程序中编写了其他的函数,其他的函数应该被main函数调用才会得到执行。

例如定义一个返回两个整数相加的函数add,然后想要执行该函数,则必须在main函数调用。

#include <stdio.h>#include <stdlib.h>//自定义函数,返回两个整数相加的结果int add(int left,int right) { return left + right;}int main(int argc, char* argv[]){ int left = 10; int right = 20; //调用add函数,并定义变量保存结果 int result =add(left,right); printf('%d + %d = %d',left,right,result); system('pause'); return 0;}

main函数左边的的int表示函数的返回类型为整数

main函数右边的()表示函数的参数,通过传递参数,将外部数据传入函数内部处理。

{}表示函数的函数体,函数具体做什么事情,都写在{}内,{}是成对出现的。

main函数中的 printf('Windows10 1903 & Visual Studio 2019 Hello World With C \n');表示将Windows10 1903 & Visual Studio 2019 Hello World With C输出到控制台,\n表示换行。而;表示语句结束,C语言中的每条语句都要使用;表示结束,否则程序会编译错误。

return 0 表示返回给系统0,并结束main函数,0表示main函数正常退出。

return之后的代码都不会执行。

#include <stdio.h>#include <stdlib.h>int main(int argc, char* argv[]){ printf('Windows10 1903 & Visual Studio 2019 Hello World With C \n'); system('pause'); return 0; printf('Windows10 1903 & Visual Studio 2019 Hello World With C again \n');}

运行上面的程序,Windows10 1903 & Visual Studio 2019 Hello World With C again不会得到输出。

注释

注释是用于描述程序的功能,为了便于程序后期的维护,在开发过程中应该添加适量的注释,编译器在预编译时会删除注释,所以注释的内容不会影响程序的结果。

C语言中支持的注释包含单行注释(//)和多行注释(/**/)两种,单行注释顾名思义就是注释一行,多行注释可以注释多行,需要注意的是多行注释不能够嵌套使用,否则会发生编译错误。

增加单行注释和多行注释后的helloworld程序

#include <stdio.h> #include <stdlib.h>/* main函数左边的int是函数的返回值,右边()的内容表示函数的参数,外部数据通过函数的参数传递到函数的内部处理。 {}表示函数的函数体,也就是函数执行的所有内容都包含在{}中,它是成对出现的。 @author liuguanglei ittimelinedotnet@gmail.com @website ittimeline.net @version 2019/10/17*/int main(int argc, char* argv[]) { //	printf函数是系统自带的函数,用于将''包含的字符串按照指定的格式输出到终端,终端可以是控制台、网页或者是文件,目前是输出到控制台。 printf('Windows10 1903 & Visual Studio 2019 Hello World With C \n'); //等待输入任意内容退出程序 system('pause'); return 0;}

Windows常用命令

Windows命令概述

主流的操作系统(Windows,Linux(Ubuntu),MacOS)及大多数应用程序都提供了基于命令行和图形化界面两种交互方式,而移动端是采用手势触控、语音等进行交互。作为普通用户来讲,图形化界面容易上手,而且交互效果更加直观。

但是作为一个程序员来讲,应该去熟悉各个操作系统的命令行的使用,因为命令行相对图形化界面而言,绝大多数场景下使用更加高效。而且图形化界面本质是对命令行的封装,能用图形化界面实现的基本都可以采用命令行实现。而且在服务器端(CentOS,RedHat)基本上是不会安装图形界面。

Windows下想要使用命令,必须首先启动控制台。

Windows系统可以使用快捷键Windows+r调出运行

后输入cmd,便可以进入Windows下的命令行终端

Windows常用命令

在启动Windows的终端(也称为控制台)之后,便可以运行命令了。如果你使用Windows作为开发平台,如下的命令你也许会经常使用到。

命令名称 功能描述dir 列出当前目录列表cd 切换目录(只能在根盘符(例如C盘)内切换),cd /切换到磁盘的根目录md 创建目录rd 删除空目录del 删除文件type 显示文本文件内容echo 输出文本内容 例如echo %path% 查看系统环境变量ping 检测网络,例如ping baidu.comnotepad 记事本calc 计算器mspaint 画图explore 文件资源管理器cleanmgr 磁盘清理desk.cpl 分辨率设置powercfg.cpl 电源设置regedit 注册表编辑器msconfig 系统配置mstsc 远程连接firewall.cpl 防火墙appwiz.cpl 添加或修改程序tasklist 查看进程列表taskkill /f /im process-name.exe 关闭指定进程netstat -ano|findstr 'port' 查看端口占用msinfo 系统信息sticky notes 便签ipconfig 查看ipwinver 查看windows版本cls 清除屏幕内容exit 退出终端

在终端上使用命令时还有些快捷键,例如Tab可以补全路径,上下键可以切换之前输入的命令。*实现模糊匹配操作,例如 del *.txt就可以删除 指定目录的所有文本文件。

如果想要获取更多的windows命令信息,可以在终端上输入help回车后会显示每个命令的名称以及功能说明。

system函数的使用

system函数用于C程序中调用各大操作系统的命令和应用程序,被调用的命令和应用程序以字符串的方式作为system函数的参数传入,实现读取用户输入的命令,并执行该命令。

在windows上运行该程序时可以传入notepad,calc等等实现程序调用。

而Linux和macOS上也有自己的命令可以提供给system函数来调用。

这里编写一个交互式程序:通过借助C语言的scanf函数读取用户在终端的命令,然后调用system函数来执行对应的命令。

如果你的开发环境不是Windows10 1903和Visual Studio 2019,可以删除#define _CRT_SECURE_NO_WARNINGS。

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>/* 使用system函数调用各大操作系统的命令		 @author liuguanglei ittimelinedotnet@gmail.com @website ittimeline.net @version 2019/10/17*/int main(int argc, char* argv[]){ // 提示用户输入执行的命令 printf('请输入需要执行的命令\n'); //定义字符串保存用户输入命令 char command[100] = {0}; //读取用户从键盘输入的命令字符串,并保存到command中 scanf('%s',command); //执行命令 system(command); system('pause'); return 0;}

因为system函数位于stdlib.h头文件中,意味着它是一个可以跨平台使用的函数。

例如在Ubuntu下使用gedit命令调用文本编辑器

但是各大操作系统的命令和应用程序是不相同的,例如在Windows上使用system函数传递字符串参数'notepad'时可以打开记事本,而移植到了类Unix上则无法调用记事本。

system函数阻止vs闪退

在Visual Studio 2019中运行程序可以通过快捷键F5直接运行,也可以通过点击本地Windows调试器运行。

但是发现在运行helloworld后程序有闪退现象,即程序运行时打开了终端后立即退出,其原因是程序运行是printf函数默认输出数据到终端,因此Visual Studio 2019开启了终端,printf输出数据完成以后,程序遇到return语句并退出,因此终端也会随之退出,因为弹出终端和退终端的时间非常短,所有感觉有闪退现象。

为了解决这一问题,首先需要在源文件使用#include <stdlib.h>包含标准库头文件,然后在main函数的最后一行加上system('pause'),这样程序运行时不会立即退出,而是等到用户输入任意键(一般习惯按回车键)才会退出。

解决 helloworld在Visual Studio 2019运行的闪退问题

#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) { printf('Windows10 1903 & Visual Studio 2019 Hello World With C \n'); system('pause'); return 0;}

再次运行程序时,在程序的末尾会输出一句请按任意键继续...

Visual Studio 2019常用快捷键

在日常使用Visual Studio 开发中会使用到如下常用的快捷键

快捷键名称	功能Ctrl+k,f	自动格式化代码Ctrl+k,c	注释代码Ctrl+k,u	取消注释代码Ctrl+F5	不调试运行Ctrl+shift+b	编译,不运行F12	查看函数定义ctrl+-	退出函数定义F5	调试运行F11	逐语句(遇到函数跳到函数内部逐语句执行)F10	逐过程 (不会进入函数内部,但是函数会被调用)Shift+F11	跳出

Visual Studio 2019 调试程序

在后期编写程序时,经验不足的开发人员通常会遇到两种错误:编译错误和运行时错误,编译错误通常是编写的程序不满足编译器的语法规范,而运行时错误则是程序运行时发生的错误,想要排查程序运行时的错误,就需要使用IDE提供的调试功能。

在源文件debug.c中定义一个返回两个整数相乘的方法mul,然后在main函数中定义两个变量作为参数传入mul方法中,并调用两个整数相乘的方法,输出计算结果

#include <stdlib.h>/* 定义两个整数相乘并返回*/int mul(int source, int target) { //打印输出传入mul方法的两个整数参数的值 printf('source = %d\n',source); printf('target = %d\n', target); return source * target;}/* Visual Studio 2019的调试 @author liuguanglei ittimelinedotnet@gmail.com @website ittimeline.net @version 2019/10/17*/int main(int argc, char* argv[]){ //定义两个变量 int source = 12; int target = 12; //调用两个整数相乘的方法,并将计算的结果保存到整数变量result中 int result = mul(source, target); printf('result = %d \n',result); system('pause'); return 0;}

在调试程序前首先需要下断点,可以使用快捷键F9下断点或者取消断点

下断点

然后使用F5调试运行程序,程序会在之前下过断点的地方暂停(无论是逐语句还是逐过程),此时可以在Visual Studio提供的自动窗口中观察变量的值

如果想要一行一行调试代码,可以使用快捷键F11,当遇到函数时(例如这里的mul函数),会进入函数的内部一行一行执行,直到该函数结束为止。

如果调试时不想进入函数的内部,可以使用快捷键F10,当程序中调用了其他函数时不会进入其他函数内部,但是函数会被调用。

如果调试时想要从一个断点跳到另外一个断点,可以使用shift+F11实现。

Visual Studio 2019的C4996错误

C4996是Visual Studio 2019提供的错误编号

首先明确下C4996错误出现错误的原因:

Visual Studio 希望用户使用Visual Studio提供的非标准库函数,但是程序员希望使用标准库函数,因为标准库是可以移植的。

如果在Visual Studio中使用标准的库函数,就会引发C4996错误类似于这种提示:error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.这里的strcpy是标准的库函数,而在Visual Studio中使用这个函数引发了C4996错误。

#include <stdio.h>#include <stdlib.h>#include <string.h>/* 解决visual studio 2019 的C4996错误 @author liuguanglei ittimelinedotnet@gmail.com @website ittimeline.net @version*/int main(int argc, char* argv[]){ //定义一个字符串 char str[32] = ''; //将hi string 复制到str中 strcpy(str, 'hi string'); printf('str = %s \n',str); system('pause'); return 0;}

那么如何解决问题呢?

方案1:在源文件的第一行定义宏#define _CRT_SECURE_NO_WARNINGS

方案2:在源文件的第一行定义#pragma warning(disable:4996)

解决Visual Studio 2019的C4996错误的两种方式

#define _CRT_SECURE_NO_WARNINGS#pragma warning(disable:4996)#include <stdio.h>#include <stdlib.h>#include <string.h>/* 解决visual studio 2019 的C4996错误 error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. @author liuguanglei ittimelinedotnet@gmail.com @website ittimeline.net @version*/int main(int argc, char* argv[]){ //定义一个字符串 char str[32] = ''; //将hi string 复制到str中 strcpy(str, 'hi string'); printf('str = %s \n',str); system('pause'); return 0;}

Visual Studio 2019的代码片段

Visual Studio 2019提供了代码片段的功能,其作用就是配置代码片段后,可以通过输入指定的快捷键生成模板代码,这样可以大大提高开发效率。

在后期编写C程序中,需要反复使用到如下的代码片段

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h>#include <stdlib.h>/* @author liuguanglei ittimelinedotnet@gmail.com @website ittimeline.net @version*/int main(int argc, char* argv[]) { return 0;}

首先自定义代码片段文件MyCCode.snippet

<?xml version='1.0' encoding='utf-8'?><CodeSnippets xmlns='http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet'> <CodeSnippet Format='1.0.0'> <Header> <Title>MyCCodeTemplate</Title> <Shortcut>mcct</Shortcut> <Description>c的标准模板代码</Description> <Author>Microsoft Corporation</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> <SnippetType>SurroundsWith</SnippetType> </SnippetTypes> </Header> <Snippet> <Code Language='cpp'> <![CDATA[#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> /* @author liuguanglei ittimelinedotnet@gmail.com @website ittimeline.net @version */ int main(int argc, char *argv[]) { system('pause'); return 0; }]]> </Code> </Snippet> </CodeSnippet></CodeSnippets>

然后选择Visual Studio 2019 菜单 工具->代码片段管理器

工具->代码片段管理器

选择代码片段管理器的语言为C++,然后选中My Code Snippets

然后为导入的代码片段选择一个位置

导入成功

导入成功之后新建任意的C程序源文件,在源文件中输入快捷键mcct就可以生成如下的代码片段

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>/* @author liuguanglei ittimelinedotnet@gmail.com @website ittimeline.net @version*/int main(int argc, char* argv[]){ system('pause'); return 0;}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多