彩金狮王游戏机价格跑程序有没有什么规律啊?

百度知道 - 信息提示
知道宝贝找不到问题了&_&!!
该问题可能已经失效。
秒以后自动返回让程序跑起来——《例C》(一)a year ago赞赏还没有人赞赏,快来当第一个赞赏的人吧!3收藏分享举报文章被以下专栏收录O Ever Weeping{&debug&:false,&apiRoot&:&&,&paySDK&:&https:\u002F\u002Fpay.zhihu.com\u002Fapi\u002Fjs&,&wechatConfigAPI&:&\u002Fapi\u002Fwechat\u002Fjssdkconfig&,&name&:&production&,&instance&:&column&,&tokens&:{&X-XSRF-TOKEN&:null,&X-UDID&:null,&Authorization&:&oauth c3cef7c66aa9e6a1e3160e20&}}{&database&:{&Post&:{&&:{&isPending&:false,&contributes&:[{&sourceColumn&:{&lastUpdated&:,&description&:&自学编程中&,&permission&:&COLUMN_PUBLIC&,&memberId&:3432293,&contributePermission&:&COLUMN_PUBLIC&,&translatedCommentPermission&:&all&,&canManage&:true,&intro&:&O Ever Weeping&,&urlToken&:&94young&,&id&:13457,&imagePath&:&c95bec334f7e2ca9f8d569e.jpeg&,&slug&:&94young&,&applyReason&:&0&,&name&:&Young&,&title&:&Young&,&url&:&https:\u002F\u002Fzhuanlan.zhihu.com\u002F94young&,&commentPermission&:&COLUMN_ALL_CAN_COMMENT&,&canPost&:true,&created&:,&state&:&COLUMN_NORMAL&,&followers&:27,&avatar&:{&id&:&c95bec334f7e2ca9f8d569e&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&activateAuthorRequested&:false,&following&:false,&imageUrl&:&https:\u002F\u002Fpic4.zhimg.com\u002Fc95bec334f7e2ca9f8d569e_l.jpg&,&articlesCount&:10},&state&:&accepted&,&targetPost&:{&titleImage&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-33e8b288b8d69f383ada_r.jpg&,&lastUpdated&:,&imagePath&:&v2-33e8b288b8d69f383ada.jpg&,&permission&:&ARTICLE_PUBLIC&,&topics&:[,20726],&summary&:&亲爱的读者,看到这里也说明你做好了学习C语言的心理准备。它不比Python等语言简单,因为学习的过程中也需要了解很多语言之外的知识,但它的历史地位是\u003Ca href=\&https:\u002F\u002Fmsdn.microsoft.com\u002Fzh-cn\u002Flibrary\u002Fhh279654.aspx\& data-editable=\&true\& data-title=\&现代化的C++\& class=\&\&\u003E现代化的C++\u003C\u002Fa\u003E都难以望其项背的。在「通过例子学习C语言」系列(后文简称为「例C」)中,会有示例\u003Ca href=\&https:\u002F\u002Fzh.wikipedia.org\u002Fwiki\u002F%E6%BA%90%E4%BB%A3%E7%A0%81\& data-editable=\&true\& data-title=\&代码\&\u003E代码\u003C\u002Fa\u003E。并…&,&copyPermission&:&ARTICLE_COPYABLE&,&translatedCommentPermission&:&all&,&likes&:0,&origAuthorId&:0,&publishedTime&:&T11:44:58+08:00&,&sourceUrl&:&&,&urlToken&:,&id&:1210830,&withContent&:false,&slug&:,&bigTitleImage&:false,&title&:&让程序跑起来——《例C》(一)&,&url&:&\u002Fp\u002F&,&commentPermission&:&ARTICLE_ALL_CAN_COMMENT&,&snapshotUrl&:&&,&created&:,&comments&:0,&columnId&:13457,&content&:&&,&parentId&:0,&state&:&ARTICLE_PUBLISHED&,&imageUrl&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-33e8b288b8d69f383ada_r.jpg&,&author&:{&bio&:&https:\u002F\u002Fgithub.com\u002Frealwangyibo&,&isFollowing&:false,&hash&:&e28db892e45b5a4418979f&,&uid&:72,&isOrg&:false,&slug&:&realwangyibo&,&isFollowed&:false,&description&:&&,&name&:&生榴莲&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Frealwangyibo&,&avatar&:{&id&:&v2-9d2cd751c5ebe8&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},&memberId&:3432293,&excerptTitle&:&&,&voteType&:&ARTICLE_VOTE_CLEAR&},&id&:436417}],&title&:&让程序跑起来——《例C》(一)&,&author&:&realwangyibo&,&content&:&\u003Cp\u003E亲爱的读者,看到这里也说明你做好了学习C语言的心理准备。它不比Python等语言简单,因为学习的过程中也需要了解很多语言之外的知识,但它的历史地位是\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fmsdn.microsoft.com\u002Fzh-cn\u002Flibrary\u002Fhh279654.aspx\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E现代化的C++\u003C\u002Fa\u003E都难以望其项背的。\u003C\u002Fp\u003E\u003Cp\u003E在「通过例子学习C语言」系列(后文简称为「例C」)中,会有示例\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fzh.wikipedia.org\u002Fwiki\u002F%25E6%25BA%%25BB%25A3%25E7%25A0%2581\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E代码\u003C\u002Fa\u003E。并且示例代码是跨平台的,也就意味着示例代码可以分别生成在Windows、macOS、Linux操作系统上按预期运行的程序。对于跨平台的程序的生成,需要用到的软件会比单一目标平台的略微复杂。(下文有时会将macOS与Linux统称为*nix,因为二者同根同源,大多数情况下操作也是一样的。*nix表示\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fzh.wikipedia.org\u002Fwiki\u002F%25E7%25B1%25BBUnix%25E7%25B3%25BB%25E7%25BB%259F\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E类Unix操作系统\u003C\u002Fa\u003E。)\u003C\u002Fp\u003E\u003Cp\u003E听说安装软件是学习编程的第一道坎,且行且珍惜 ?\u003C\u002Fp\u003E\u003Ch2\u003E本章任务\u003C\u002Fh2\u003E\u003Col\u003E\u003Cli\u003E在自己的电脑上安装所需软件\u003C\u002Fli\u003E\u003Cli\u003E获取示例代码\u003C\u002Fli\u003E\u003Cli\u003E成功编译并运行hello程序\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Ch2\u003E软件列表\u003C\u002Fh2\u003E\u003Cp\u003E\u003Cb\u003EWindows\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fwww.visualstudio.com\u002F\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EVisual Studio Community\u003C\u002Fa\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fcmake.org\u002Fdownload\u002F\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003ECMake\u003C\u002Fa\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E\u003Cb\u003E*nix\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fwww.jetbrains.com\u002Fclion\u002Fdownload\u002F\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003ECLion\u003C\u002Fa\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E注:Visual Studio Community对学生和个人开发者免费,JetBrains全家桶可以凭教育邮箱\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fwww.jetbrains.com\u002Fstudent\u002F%29%25E3%\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E申请学生证书\u003C\u002Fa\u003E。\u003C\u002Fp\u003E\u003Cp\u003EVisual Studio 需要选择以下组件(其他组件选装):\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-8dff346e2fe_b.jpg\& data-rawwidth=\&920\& data-rawheight=\&1288\& class=\&origin_image zh-lightbox-thumb\& width=\&920\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-8dff346e2fe_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='920'%20height='1288'&&\u002Fsvg&\& data-rawwidth=\&920\& data-rawheight=\&1288\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&920\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-8dff346e2fe_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-8dff346e2fe_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Ch2\u003E软件介绍\u003C\u002Fh2\u003E\u003Cp\u003EVisual Studio(后文简称VS)、Xcode、CLion都属于程序员编程必备的软件——\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fzh.wikipedia.org\u002Fwiki\u002F%25E9%259B%%E5%25BC%%258F%%258E%25AF%25E5%25A2%2583\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E集成开发环境\u003C\u002Fa\u003E(IDE)。在编程的过程中,先要在源代码文件(Source file)中输入代码并保存,然后将源代码「转换」成程序或库(「转换」的通用说法是「编译」(Compile),后文采用通用说法),当编译(转换)失败时,IDE会提醒程序员哪里出错,然后程序员修改代码,并尝试再次编译……直到完成程序编写。\u003C\u002Fp\u003E\u003Cp\u003E熟练的程序员的(简化版)编程流程大概是:\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E想好如何编写(可能画图或做笔记)\u003C\u002Fli\u003E\u003Cli\u003E打开IDE,新建工程\u003C\u002Fli\u003E\u003Cli\u003E将代码输入源代码文件\u003C\u002Fli\u003E\u003Cli\u003E尝试转换\u003C\u002Fli\u003E\u003Cli\u003E转换不成功时,尝试修改源代码,并回到第4步,而多次不成功之后,打开浏览器搜索\u003C\u002Fli\u003E\u003Cli\u003E转换成功,编写基本完成\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp\u003E而本系列的读者的编程流程大概是:\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E阅读本系列某篇文档,然而不知所云\u003C\u002Fli\u003E\u003Cli\u003E尝试运行示例代码,看到了结果,还是不知道怎么弄出来的\u003C\u002Fli\u003E\u003Cli\u003E再读几遍文档,然后尝试练习(照猫画虎式修改源代码文件)\u003C\u002Fli\u003E\u003Cli\u003E转换失败了,一脸懵逼\u003C\u002Fli\u003E\u003Cli\u003E上网找一下资料,发现笔者根本没写全嘛\u003C\u002Fli\u003E\u003Cli\u003E终于转换成功了,有了一点编程的感觉\u003C\u002Fli\u003E\u003Cli\u003E阅读下一篇文档\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp\u003E编程一定要IDE吗?不一定。你可能听过\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fblogs.msdn.microsoft.com\u002Foldnewthing\u002F\u002F%3Fp%3D3003\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E比尔·盖茨在飞机上编写程序模块的故事\u003C\u002Fa\u003E,Linus在编写Linux内核时也没有IDE可以用。然而对于普通人,不同的工具所造成的效率差异是客观存在的。\u003C\u002Fp\u003E\u003Cp\u003E我们有IDE可以帮我们在想不起来「那个东西叫什么来着」的时候提示我们,可以帮我们发现语法错误(syntax error),可以帮我们处理编译过程,让我们可以在初学阶段专注于语法(syntax)的学习。\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E想起做简历的一个笑话,有某CS方向的,简历上写着:精通C++\u003C\u002Fp\u003E\u003Cp\u003E然后,HR笑了,技术笑了,连公司CTO都笑了。\u003C\u002Fp\u003E\u003Cp\u003E某EE方向的,简历上写着:精通AD、Cadence、Mentor EE、Pspice、Hyperlynx\u003C\u002Fp\u003E\u003Cp\u003E然后,HR拿给技术,技术问:除了这三个软件,其他的没接触过吗?PADs会不会?Eagle会不会?Simulink会不会?Multisim会不会?\u003C\u002Fp\u003E\u003Cp\u003E模拟电子,数字电路,信号与系统,信号完整性,电源完整性,这些都弄懂了吗?\u003C\u002Fp\u003E\u003Cp\u003EPCB制板工艺,手工焊接工艺,怎么样?\u003C\u002Fp\u003E\u003Cp\u003E调试经验,做过多少项目?机箱结构设计过吗?机柜形式呢?\u003C\u002Fp\u003E\u003Cp\u003E好吧,问点简单的好了,炸过多少电容?烧过多少芯片?加起来有没有两千美元?\u003C\u002Fp\u003E\u003Cp\u003E这些都没有?\u003C\u002Fp\u003E\u003Cp\u003E小伙子你还没有入门吗!╮(╯▽╰)╭\u003C\u002Fp\u003E\u003Cp\u003E加油!你不是一个人!\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fwww.zhihu.com\u002Fquestion\u002F2Fanswer\u002F\& class=\&internal\&\u003E段子出自知乎用户:运算放大器\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E看,其实计算机的门槛比电子低多了(逃\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E而CMake是C\u002FC++流行的跨平台「项目构建工具」(Build tool)。原本项目构建工具是IDE的一部分(IDE集成了相当多的东西),通过「配置文件」来识别源代码文件的构成与编译方式。但各家IDE基本都有自家的配置文件格式,不兼容其他IDE。所以需要一款软件来生成各家IDE的「配置文件」,这款软件就是CMake。\u003C\u002Fp\u003E\u003Cp\u003E由于示例代码是跨平台的,所以CMake也是必须的。在Windows上通过CMake生成VS工程文件,而CLion原生支持CMake。\u003C\u002Fp\u003E\u003Ch2\u003E如何获取示例代码\u003C\u002Fh2\u003E\u003Cp\u003E先在\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fgithub.com\u002Frealwangyibo\u002Fc-by-example\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E《例C》的GitHub仓库\u003C\u002Fa\u003E的右上角找到绿色按钮「Clone or download」,点击,选择「Download ZIP」下载;然后解压。\u003C\u002Fp\u003E\u003Ch2\u003E将代码编译成程序\u003C\u002Fh2\u003E\u003Cp\u003E我们这次要转换的示例代码在文件夹hello。\u003C\u002Fp\u003E\u003Cp\u003E转换而成的程序可以在程序文件夹的build文件夹中找到。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003EWindows\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E进入到程序文件夹,找到里面的vsgen.bat,双击之。\u003C\u002Fli\u003E\u003Cli\u003E进入到新生成的vsfiles文件夹,双击Visual Studio工程文件(扩展名为sln)。\u003C\u002Fli\u003E\u003Cli\u003E按下键盘的F5,处理代码并运行程序。\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp\u003E\u003Cb\u003E*nix\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E启动CLion\u003C\u002Fli\u003E\u003Cli\u003EImport project from source -& 定位到程序文件夹\u003C\u002Fli\u003E\u003Cli\u003ERun -& Edit configuration -& Executable -& 选择列表中的程序(一般和程序文件夹同名)-& Apply -& OK\u003C\u002Fli\u003E\u003Cli\u003ERun -& Run 'Build All'\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Ch2\u003E编译?\u003C\u002Fh2\u003E\u003Cp\u003E也有的读者了解到程序是经过编译器编译后从源代码转换成程序的。实际上这个说法并不准确。\u003C\u002Fp\u003E\u003Cp\u003E源代码到程序要经历「预处理(Preprocessing) -& 编译(Compiling) -& 汇编(Assembling) -& 链接(Linking)」的过程(通俗的「编译」),编译器只参与了第二步。因为程序员能左右的,基本只有编译过程;其次是在四个过程中,编译过程占了大头。除了编译器还有预处理器、汇编器、链接器等部件。\u003C\u002Fp\u003E\u003Cp\u003E当然很多人把「编译器套装」简称为「编译器」。编译器套装包括预处理器(Preprocessor)、编译器(Compiler)、汇编器(Assembler)、链接器(Linker)、调试器(Debugger)等部分。目前C\u002FC++的流行编译器套装有\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fzh.wikipedia.org\u002Fwiki\u002FMicrosoft_Visual_C%252B%252B\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EMSVC(Microsoft Visual C++ (Build Tool))\u003C\u002Fa\u003E、\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fgcc.gnu.org\u002F\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EGCC(GNU Compiler Collection)\u003C\u002Fa\u003E和\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fclang.llvm.org\u002F\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EClang\u003C\u002Fa\u003E。笔者认为套装当选Clang,因为出错信息友好、语言标准支持完整、全平台支持(VS2015可选配)。\u003C\u002Fp\u003E\u003Cp\u003E本系列的示例代码可以在上述三种编译器套装下完成到程序的转换过程。\u003C\u002Fp\u003E\u003Cp\u003E「编译」有两个含义,\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E将源代码转换成程序或库的全过程\u003C\u002Fli\u003E\u003Cli\u003E前者过程的第二步\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E「编译器」也有两个含义,\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E编译器套装(Compiler Collection)\u003C\u002Fli\u003E\u003Cli\u003E编译器套装中的一个组件\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E这就像「质量」在日常生活中的含义和在物理学中的含义不同一样,请读者在遇到这两个词时注意区分。大众语境下,以及「例C」未作特殊说明的情况下,均指第一种含义。\u003C\u002Fp\u003E&,&updated&:new Date(&T03:44:58.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:0,&collapsedCount&:0,&likeCount&:3,&state&:&published&,&isLiked&:false,&slug&:&&,&lastestTipjarors&:[],&isTitleImageFullScreen&:false,&rating&:&none&,&titleImage&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-33e8b288b8d69f383ada_r.jpg&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&reviewers&:[],&topics&:[{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&C(编程语言)&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&C 语言入门&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&编程入门&}],&adminClosedComment&:false,&titleImageSize&:{&width&:700,&height&:612},&href&:&\u002Fapi\u002Fposts\u002F&,&excerptTitle&:&&,&column&:{&slug&:&94young&,&name&:&Young&},&tipjarState&:&activated&,&tipjarTagLine&:&真诚赞赏,手留余香&,&sourceUrl&:&&,&pageCommentsCount&:0,&tipjarorCount&:0,&annotationAction&:[],&hasPublishingDraft&:false,&snapshotUrl&:&&,&publishedTime&:&T11:44:58+08:00&,&url&:&\u002Fp\u002F&,&lastestLikers&:[{&bio&:&I build things.&,&isFollowing&:false,&hash&:&e15d5cb83ce6ff4318f51baaeef19de6&,&uid&:16,&isOrg&:false,&slug&:&he-zheng-hao-14&,&isFollowed&:false,&description&:&饱食终日&,&name&:&Pablo&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fhe-zheng-hao-14&,&avatar&:{&id&:&v2-b3c93247dedd67ae7afb948bc291ed3a&,&template&:&https:\u002F\u002Fpic1.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&工程师&,&isFollowing&:false,&hash&:&793a2d835fd0a378c329a1&,&uid&:36,&isOrg&:false,&slug&:&ma-ke-bai-98&,&isFollowed&:false,&description&:&&,&name&:&马克呗&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fma-ke-bai-98&,&avatar&:{&id&:&655e308e63e1be4a542ad0c&,&template&:&https:\u002F\u002Fpic3.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&汕大计算机&,&isFollowing&:false,&hash&:&41dfb8d39bbbd5a&,&uid&:997000,&isOrg&:false,&slug&:&lin-han-yu-39&,&isFollowed&:false,&description&:&装逼犯&,&name&:&林翰宇&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Flin-han-yu-39&,&avatar&:{&id&:&0ff424dd7f4a9f3d26e636&,&template&:&https:\u002F\u002Fpic3.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false}],&summary&:&\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-8dff346e2fe_200x112.jpg\& data-rawwidth=\&920\& data-rawheight=\&1288\& class=\&origin_image inline-img zh-lightbox-thumb\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-8dff346e2fe_r.jpg\&\u003E亲爱的读者,看到这里也说明你做好了学习C语言的心理准备。它不比Python等语言简单,因为学习的过程中也需要了解很多语言之外的知识,但它的历史地位是\u003Ca href=\&https:\u002F\u002Fmsdn.microsoft.com\u002Fzh-cn\u002Flibrary\u002Fhh279654.aspx\& data-editable=\&true\& data-title=\&现代化的C++\& class=\&\&\u003E现代化的C++\u003C\u002Fa\u003E都难以望其项背的。在「通过例子学习C语言」系列(后文简称为「例C」)中,会有示例\u003Ca href=\&https:\u002F\u002Fzh.wikipedia.org\u002Fwiki\u002F%E6%BA%90%E4%BB%A3%E7%A0%81\& data-editable=\&true\& data-title=\&代码\&\u003E代码\u003C\u002Fa\u003E。并…&,&reviewingCommentsCount&:0,&meta&:{&previous&:{&isTitleImageFullScreen&:false,&rating&:&none&,&titleImage&:&https:\u002F\u002Fpic2.zhimg.com\u002F50\u002Fv2-44713aafcfc0b5d_xl.jpg&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&topics&:[{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&C(编程语言)&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&C 语言入门&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&编程入门&}],&adminClosedComment&:false,&href&:&\u002Fapi\u002Fposts\u002F&,&excerptTitle&:&&,&author&:{&bio&:&https:\u002F\u002Fgithub.com\u002Frealwangyibo&,&isFollowing&:false,&hash&:&e28db892e45b5a4418979f&,&uid&:72,&isOrg&:false,&slug&:&realwangyibo&,&isFollowed&:false,&description&:&&,&name&:&生榴莲&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Frealwangyibo&,&avatar&:{&id&:&v2-9d2cd751c5ebe8&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},&column&:{&slug&:&94young&,&name&:&Young&},&content&:&作为一只毫无背景和工程经验的学生狗,居然也厚颜无耻地写起了教程。\u003Cp\u003E\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fgithub.com\u002Frealwangyibo\u002Fc-by-example\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EGitHub地址\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Ch2\u003E快速预览\u003C\u002Fh2\u003E\u003Cul\u003E\u003Cli\u003E基于C99\u003Cbr\u003E\u003C\u002Fli\u003E\u003Cli\u003E示例代码跨平台\u003Cbr\u003E\u003C\u002Fli\u003E\u003Cli\u003E面向初学者\u003Cbr\u003E\u003C\u002Fli\u003E\u003Cli\u003E亲自动手(Learning by doing)\u003Cbr\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cbr\u003E\u003Ch2\u003E为什么要学习C语言?\u003C\u002Fh2\u003E\u003Cp\u003E能找到本系列并能坚持看到此处的读者,说明有学习\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fzh.wikipedia.org\u002Fwiki\u002FC%25E8%25AF%25AD%25E8%25A8%2580\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EC语言\u003C\u002Fa\u003E或学习编程的需求。但也有不少读者不知道为什么学习它,毕竟还有更多人推荐Python上手。\u003C\u002Fp\u003E\u003Cp\u003EC语言诚然很老了,它也有很多不擅长的领域。其创始人也说\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fspectrum.ieee.org\u002Fat-work\u002Finnovation\u002Finventing-unix\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E「C语言是古怪的、有缺点的,但也是巨大的成功。」\u003C\u002Fa\u003E。笔者认为C语言的不足在于抽象程度不足,而如今其立足的根本在于极少的抽象(也有人说C本来就是汇编的语法糖),这意味着你基本可以通过代码联想到底层操作;其次就是根据历史的进程,系统编程领域很难找到运行效率如此高的语言(代价是代码的编写是面向机器的)。\u003C\u002Fp\u003E\u003Cp\u003E当然一定会有人想到C++,它的出现弥补了C语言的「抽象程度不足」的缺点(然后又挖了一些坑),但其有一项缺点——\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwww.oracle.com\u002Ftechnetwork\u002Fcn\u002Farticles\u002Fservers-storage-dev\u002Fstablecplusplusabi-333927-zhs.html\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EABI不稳定\u003C\u002Fa\u003E,影响了C++和其他语言的交互,导致很多时候C++的现代特性「只能和自己玩」。C语言因为特性很少改动,所以ABI稳定得多(对于同样的操作系统而言),并且\u003Ca href=\&https:\u002F\u002Fwww.zhihu.com\u002Fquestion\u002F\& class=\&internal\&\u003E「各家操作系统已经研究决定了,就让C作为语言环境……」\u003C\u002Fa\u003E,另外C++进入系统编程领域较晚,当时C的无上地位已经确立。所以大多数现代编程语言都支持和C语言进行交互:\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwww.cnblogs.com\u002Fskynet\u002Farchive\u002F\u002F10\u002F1774964.html\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EC++\u003C\u002Fa\u003E、\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwww.cnblogs.com\u002Ficejoywoo\u002Farchive\u002F\u002F22\u002F2363709.html\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EJava\u003C\u002Fa\u003E、\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fdocs.python.org\u002F3.5\u002Fextending\u002Fextending.html%23providing-a-c-api-for-an-extension-module\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EPython\u003C\u002Fa\u003E、\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fdeveloper.apple.com\u002Flibrary\u002Fcontent\u002Fdocumentation\u002FSwift\u002FConceptual\u002FBuildingCocoaApps\u002FInteractingWithCAPIs.html%23\u002F\u002Fapple_ref\u002Fdoc\u002Fuid\u002FTP-CH8-XID_13\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003ESwift\u003C\u002Fa\u003E、\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fsilverhammermba.github.io\u002Femberb\u002Fextend\u002F\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003ERuby\u003C\u002Fa\u003E、\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fbook.realworldhaskell.org\u002Fread\u002Finterfacing-with-c-the-ffi.html\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EHaskell\u003C\u002Fa\u003E、\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fblog.golang.org\u002Fc-go-cgo\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EGo\u003C\u002Fa\u003E、\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fdoc.rust-lang.org\u002Fbook\u002Fffi.html\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003ERust\u003C\u002Fa\u003E……\u003C\u002Fp\u003E\u003Cp\u003E那么学习C语言的理由就很明显了,虽然大多数人不会使用纯C进行开发,但要和其他语言或操作系统进行交互,C语言一定是绕不开的(作为最后的接口语言)。\u003C\u002Fp\u003E\u003Cp\u003E简短而通俗地说,\u003Cb\u003E如果把操作系统比作一个国家,所有高级语言是国家的国民的话,那么C语言是一等公民,其他国家是二等公民。\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E「通过例子学习C语言」系列,希望能提供一个更加快速上手的途径,不错过这一门被钦定的语言 ?\u003C\u002Fp\u003E\u003Cp\u003E从笔者的经验来看,learning by doing几乎是学习编程最快的方法。\u003C\u002Fp\u003E\u003Cp\u003E由于笔者水平有限,文段中难免会出现不准确或错误。欢迎各位大大拍砖。\u003C\u002Fp\u003E\u003Ch2\u003E目录\u003C\u002Fh2\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& class=\&internal\&\u003E让程序跑起来——《例C》(一)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& class=\&internal\&\u003Ehello, world——《例C》(二)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& class=\&internal\&\u003E这是一门需要了解底层的语言——《例C》(三)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F?refer=94young\& class=\&internal\&\u003EC语言「超级喜欢」缩写——《例C》(四)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F#tipjar\& class=\&internal\&\u003E语法构成——《例C》(五)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F?refer=94young\& class=\&internal\&\u003E类型转换——《例C》(六)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& class=\&internal\&\u003E未定义行为——《例C》(七)\u003C\u002Fa\u003E\u003C\u002Fp\u003E&,&state&:&published&,&sourceUrl&:&&,&pageCommentsCount&:0,&canComment&:false,&snapshotUrl&:&&,&slug&:,&publishedTime&:&T17:11:17+08:00&,&url&:&\u002Fp\u002F&,&title&:&《通过例子学习C语言》系列开坑&,&summary&:&作为一只毫无背景和工程经验的学生狗,居然也厚颜无耻地写起了教程。\u003Ca href=\&https:\u002F\u002Fgithub.com\u002Frealwangyibo\u002Fc-by-example\& data-editable=\&true\& data-title=\&GitHub地址\&\u003EGitHub地址\u003C\u002Fa\u003E 快速预览基于C99 示例代码跨平台 面向初学者 亲自动手(Learning by doing) 为什么要学习C语言?能找到本系列并能坚持看到此处的读者,说明有学习\u003Ca href=\&https:\u002F\u002Fzh.wikipedia.org\u002Fwiki\u002FC%E8%AF%AD%E8%A8%80\& data-editable=\&true\& data-title=\&C语言\&\u003EC语言\u003C\u002Fa\u003E或学习编程的需求。但…&,&reviewingCommentsCount&:0,&meta&:{&previous&:null,&next&:null},&commentPermission&:&anyone&,&commentsCount&:0,&likesCount&:5},&next&:{&isTitleImageFullScreen&:false,&rating&:&none&,&titleImage&:&https:\u002F\u002Fpic2.zhimg.com\u002F50\u002Fv2-ec94f5cb90dc382e94f771b7b42181e3_xl.jpg&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&topics&:[{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&C(编程语言)&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&C 语言入门&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&编程入门&}],&adminClosedComment&:false,&href&:&\u002Fapi\u002Fposts\u002F&,&excerptTitle&:&&,&author&:{&bio&:&https:\u002F\u002Fgithub.com\u002Frealwangyibo&,&isFollowing&:false,&hash&:&e28db892e45b5a4418979f&,&uid&:72,&isOrg&:false,&slug&:&realwangyibo&,&isFollowed&:false,&description&:&&,&name&:&生榴莲&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Frealwangyibo&,&avatar&:{&id&:&v2-9d2cd751c5ebe8&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},&column&:{&slug&:&94young&,&name&:&Young&},&content&:&\u003Cp\u003E\u003Cb\u003E提示:本章信息量略大\u003C\u002Fb\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E读到此处,读者应该可以在自己的电脑上\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& class=\&internal\&\u003E运行C程序\u003C\u002Fa\u003E。如果遇到问题,请在评论中提出,或者到\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fgithub.com\u002Frealwangyibo\u002Fc-by-example\u002Fissues\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003Eissues\u003C\u002Fa\u003E提出。\u003C\u002Fp\u003E\u003Cp\u003Ehello, world这句话,即使是没接触过编程的人也一定听说过(和\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fwww.v2ex.com\u002Ft\u002Freply40\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E「程序猿」\u003C\u002Fa\u003E形象绑定)。这是因为C语言的创始人在自编教程《The C Programming Language》中,第一个教程是在终端(Terminal)输出hello, world而得名。结合C语言的历史超然地位,有相当多的语言教程的第一个程序也是在向它致敬,于是hello, world也成了程序员界无人不知的梗。\u003C\u002Fp\u003E\u003Cp\u003E本章任务\u003C\u002Fp\u003E\u003Cp\u003E修改示例代码,让程序输出三行情书:\u003C\u002Fp\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E手机里依然留着\n“喜欢你”\n那句未曾送出的信息\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E提示:\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cul\u003E\u003Cli\u003E在字符串外输入中文符号将导致转换失败。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cbr\u003E\u003Cul\u003E\u003Cli\u003EWindows平台上,若是编译失败,先检查「文件」-&「高级保存选项」中的文件编码是否为Unicode(UTF-8无签名)代码页6Cbr\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cbr\u003E\u003Cp\u003E示例代码\u003C\u002Fp\u003E\u003Cp\u003E本文对应的程序还在 hello 文件夹,C语言源代码的文件扩展名是c(或是h)。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-c\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&c1\&\u003E\u002F\u002F 注释在对应的程序文件夹内的程序文件未必有\u003C\u002Fspan\u003E\n\u003Cspan class=\&c1\&\u003E\u002F\u002F 导入头文件 (引入库)\u003C\u002Fspan\u003E\n\u003Cspan class=\&cp\&\u003E#include\u003C\u002Fspan\u003E \u003Cspan class=\&cpf\&\u003E&stdio.h& \u002F\u002F 为了能让程序在控制台显示东西引入的\u003C\u002Fspan\u003E\u003Cspan class=\&cp\&\u003E\u003C\u002Fspan\u003E\n\n\u003Cspan class=\&cm\&\u003E\u002F*\u003C\u002Fspan\u003E\n\u003Cspan class=\&cm\&\u003E * 以下是预处理语句\u003C\u002Fspan\u003E\n\u003Cspan class=\&cm\&\u003E * #ifdef _WIN32 当宏 _WIN32 被定义时(仅在Windows中)\u003C\u002Fspan\u003E\n\u003Cspan class=\&cm\&\u003E * #else 否则\u003C\u002Fspan\u003E\n\u003Cspan class=\&cm\&\u003E * #endif 结束判断\u003C\u002Fspan\u003E\n\u003Cspan class=\&cm\&\u003E *\u002F\u003C\u002Fspan\u003E\n\u003Cspan class=\&cp\&\u003E#ifdef _WIN32\u003C\u002Fspan\u003E\n\u003Cspan class=\&cp\&\u003E#include\u003C\u002Fspan\u003E \u003Cspan class=\&cpf\&\u003E&stdlib.h& \u002F\u002F 为了使用system函数而引入\u003C\u002Fspan\u003E\u003Cspan class=\&cp\&\u003E\u003C\u002Fspan\u003E\n\u003Cspan class=\&c1\&\u003E\u002F\u002F 宏定义:防止闪退\u003C\u002Fspan\u003E\n\u003Cspan class=\&cp\&\u003E#define PAUSE system(\&pause\&);\u003C\u002Fspan\u003E\n\u003Cspan class=\&cp\&\u003E#else\u003C\u002Fspan\u003E\n\u003Cspan class=\&c1\&\u003E\u002F\u002F 防止未定义宏,这个是C99的空白宏\u003C\u002Fspan\u003E\n\u003Cspan class=\&cp\&\u003E#define PAUSE\u003C\u002Fspan\u003E\n\u003Cspan class=\&cp\&\u003E#endif\u003C\u002Fspan\u003E\n\n\u003Cspan class=\&c1\&\u003E\u002F\u002F main函数(子程序):没有参数,返回整数\u003C\u002Fspan\u003E\n\u003Cspan class=\&kt\&\u003Eint\u003C\u002Fspan\u003E \u003Cspan class=\&nf\&\u003Emain\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E()\u003C\u002Fspan\u003E \u003Cspan class=\&p\&\u003E{\u003C\u002Fspan\u003E\n\n
\u003Cspan class=\&c1\&\u003E\u002F\u002F 打印函数:参数为文字(字符串),属于库stdio\u003C\u002Fspan\u003E\n
\u003Cspan class=\&c1\&\u003E\u002F\u002F 字符串的两端有半角双引号\&\&,字符则是半角单引号''\u003C\u002Fspan\u003E\n
\u003Cspan class=\&c1\&\u003E\u002F\u002F 处理过程中向命令行输出参数\u003C\u002Fspan\u003E\n
\u003Cspan class=\&c1\&\u003E\u002F\u002F 返回整数(被忽略)\u003C\u002Fspan\u003E\n
\u003Cspan class=\&n\&\u003Eprintf\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&hello, world\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E);\u003C\u002Fspan\u003E\n\n
\u003Cspan class=\&c1\&\u003E\u002F\u002F 在Windows下被替换成 system(\&pause\&);\u003C\u002Fspan\u003E\n
\u003Cspan class=\&c1\&\u003E\u002F\u002F 在其他操作系统下被替换成\u003C\u002Fspan\u003E\n
\u003Cspan class=\&n\&\u003EPAUSE\u003C\u002Fspan\u003E\n\n
\u003Cspan class=\&c1\&\u003E\u002F\u002F 表示main函数返回整数0\u003C\u002Fspan\u003E\n
\u003Cspan class=\&k\&\u003Ereturn\u003C\u002Fspan\u003E \u003Cspan class=\&mi\&\u003E0\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E;\u003C\u002Fspan\u003E\n\u003Cspan class=\&p\&\u003E}\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E该程序的功能是:向控制台输出字符串hello, world。\u003C\u002Fp\u003E\u003Cp\u003E注释\u003C\u002Fp\u003E\u003Cp\u003E大多数情况下人们很难通过读程序代码来了解编写程序的人的意图,而需要额外的文字来解释。于是注释(Comment)便应运而生。在编译过程中,注释都会被忽略。(毕竟只是给人看的)\u003C\u002Fp\u003E\u003Cp\u003E注释又分为两种:行注释和块注释。行注释以双斜杠\u002F\u002F开始,双斜杠之后的内容到该行结束都代表注释。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u002F\u002F 识得唔识得噶\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E行注释是C99的特性,不过很多编译器在C89阶段扩展实现了。\u003C\u002Fp\u003E\u003Cp\u003E块注释以起始符\u002F*开始,终止符*\u002F结束。\u003C\u002Fp\u003E\u003Cp\u003E块注释的起始符和终止符不能嵌套,也就是\u003C\u002Fp\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-c\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&cm\&\u003E\u002F* 我是注释吗 \u002F* 我应该是注释吧 *\u002F\u003C\u002Fspan\u003E \u003Cspan class=\&err\&\u003E(吃瓜群众)*\u002F\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E以及\u003C\u002Fp\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-cpp\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&cm\&\u003E\u002F* *\u002F\u003C\u002Fspan\u003E \u003Cspan class=\&err\&\u003E我应该是注释吧\u003C\u002Fspan\u003E \u003Cspan class=\&cm\&\u003E\u002F* *\u002F\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E都是不行的。\u003C\u002Fp\u003E\u003Ch2\u003E语言标准\u003C\u002Fh2\u003E\u003Cp\u003EC语言最初是被拿来编写Unix操作系统的,后来被广泛地应用于不同的体系结构、不同的编译器和不同的操作系统。为了防止各家使用C的过程中语法被分裂,美国国家标准局(ANSI)于1989年将C语言标准化。该标准被称为C89. 国际标准化组织(ISO)通过修改C89,于1990年发布了更加国际化的C语言标准,被称为C90。ANSI则选择跟进ISO的标准。\u003C\u002Fp\u003E\u003Cp\u003E1999年,ISO发布新的C语言标准,史称C99, 这也是本系列所基于的语言标准。本系列的读者也有一部分是由于工作平台的原因没法使用C99特性,于是笔者将在应用C99特性之处明显标出。之后还有C11。\u003C\u002Fp\u003E\u003Cp\u003E语言标准特性也不能当作圣经来看。有的标准规定的特性没什么卵用,于是大家都没实现。比如\u003Ca href=\&https:\u002F\u002Fwww.zhihu.com\u002Fquestion\u002F\& class=\&internal\&\u003EC++11有一个「对垃圾收集的微小资瓷」\u003C\u002Fa\u003E。\u003C\u002Fp\u003E\u003Cp\u003E另外MSVC实现了部分C99特性,因为C99一方面是为了跟上C++98,实现的部分是指C++已经有的。另外C++有替代品的东西,微软也懒得在C中实现。比如\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwww.cnblogs.com\u002Fmr-wid\u002Farchive\u002F\u002F22\u002F2871105.html\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EC++的std::vector\u003C\u002Fa\u003E与C99的\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002F33024.blog.163.com\u002Fblog\u002Fstatic\u002F\u002F\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E变长数组\u003C\u002Fa\u003E。\u003C\u002Fp\u003E\u003Cp\u003E还有一种标准说法是ANSI C,指的是C89,也有不少程序是拿ANSI C编写的,比如\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fgithub.com\u002FLuaDist\u002Flua\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003ELua语言的解释器\u003C\u002Fa\u003E就是100%的ANSI C,也意味着其代码严格遵守ANSI C,而且没有使用任何编译器(全家桶)的扩展语法。除了语言标准规定的一些语法外,GCC、Clang、MSVC都有自己的一些扩展语法,当你编写的程序不考虑移植到其他平台时,就可以尽情使用编译器扩展语法。但本系列的示例代码是跨平台的,所以会尽可能使用标准语法,扩展语法会被标出。\u003C\u002Fp\u003E\u003Ch2\u003E函数\u003C\u002Fh2\u003E\u003Cp\u003E原本「函数」(Function)是指\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fzh.wikipedia.org\u002Fwiki\u002F%25E5%2587%25BD%25E6%\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E输入和输出的对应关系\u003C\u002Fa\u003E,而C语言的函数实际上是\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fzh.wikipedia.org\u002Fwiki\u002F%25E5%2587%25BD%25E6%\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E「子程序」\u003C\u002Fa\u003E,子程序提供可选的输入和输出。C语言程序中,将会用到很多的函数。\u003C\u002Fp\u003E\u003Cp\u003E「库」(Library)就是函数的集合。\u003C\u002Fp\u003E\u003Ch3\u003Emain函数\u003C\u002Fh3\u003E\u003Cp\u003E对于示例代码中的main函数来说,是没有输入的,输出是一个整数。函数体(函数的内部过程)用一对大括号{}包裹。一般我们将输入的数据称为参数(parameter),输出的数据称为返回值(return value),下同。\u003C\u002Fp\u003E\u003Cp\u003Emain函数的地位更加特殊:任何C语言程序都将从main开始执行。换句话说,在C程序中可以没有其他函数,而main函数是必须有的。至于为什么从main函数执行,只是语言作者们的一个约定罢了,这个约定早在汇编语言时期就有。\u003C\u002Fp\u003E\u003Cp\u003E在操作系统间有默认的约定:main函数返回0代表程序正常结束,否则代表运行过程中出现错误。\u003C\u002Fp\u003E\u003Ch3\u003E头文件与库函数\u003C\u002Fh3\u003E\u003Cp\u003EC语言设计了形式为「头文件」(Header File, 扩展名为h)和「实现文件」(Implementation File,扩展名为c)的分离式编译机制。现在看来,这个机制的问题比便利性要更突出,因此除了C++和Objective-C(这两门语言都兼容C语言)也没有哪门语言继续用了。而导入头文件是为了使用库函数。\u003C\u002Fp\u003E\u003Cp\u003E库(Library)对于C语言就是函数的集合,属于某个库的函数叫库函数。语言标准除了规定标准语法外,还规定了「标准库」(Standard Library)。例如printf是一个库函数,属于标准库stdio,为了使用printf函数,就必须引入stdio库,则需要导入相应的头文件。\u003C\u002Fp\u003E\u003Cp\u003E本示例代码中使用了一个库函数printf(来自库stdio),它是该程序核心功能的体现。printf函数输入hello, world字符串,进行内部处理,将输入的字符在控制台显示,并返回一个整数(表示输出的字符数,不过在本程序中被忽略了)。\\n是一个特殊的字符,表示换行(按下回车)。\u003C\u002Fp\u003E\u003Cp\u003E库的意义在于代码重用,比如说你可以在不同的程序中使用printf函数,而不需要每次把printf函数的功能自己实现一遍。\u003C\u002Fp\u003E\u003Cp\u003EC语言标准同样规定了一批标准库,比如stdio、stdlib、math等。\u003C\u002Fp\u003E\u003Ch2\u003E预处理\u003C\u002Fh2\u003E\u003Cp\u003E示例中涉及了判断和宏,判断详见注释。「预处理」(Preprocess)是编译的上一步。其中的判断部分,详见注释。\u003C\u002Fp\u003E\u003Cp\u003EC语言中的「宏」(Macro)就是简单的文本替换。比如例子中的\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-cpp\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&cp\&\u003E#define PAUSE system(\&pause\&);\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E就是把程序中出现的PAUSE替换成system(\&pause\&);。\u003C\u002Fp\u003E\u003Cp\u003EC99中允许空白宏,空白宏被替换成空字符串。不能使用C99的读者可以:\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-c\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&cp\&\u003E#define PAUSE ;\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Ch2\u003E防止闪退\u003C\u002Fh2\u003E\u003Cp\u003E由于Visual Studio在运行控制台程序时将调用「命令提示符」,程序运行结束后,命令提示符便会一同退出。这样一来就看不到程序输出了(窗口出现又消失)。于是我们在程序完成输出字符后传入pause命令(借助system函数),程序便会暂停并等待键盘输入。借此我们就能观察程序输出了。\u003C\u002Fp\u003E&,&state&:&published&,&sourceUrl&:&&,&pageCommentsCount&:0,&canComment&:false,&snapshotUrl&:&&,&slug&:,&publishedTime&:&T23:57:55+08:00&,&url&:&\u002Fp\u002F&,&title&:&hello, world——《例C》(二)&,&summary&:&\u003Cb\u003E提示:本章信息量略大\u003C\u002Fb\u003E 读到此处,读者应该可以在自己的电脑上\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& data-editable=\&true\& data-title=\&运行C程序\& class=\&\&\u003E运行C程序\u003C\u002Fa\u003E。如果遇到问题,请在评论中提出,或者到\u003Ca href=\&https:\u002F\u002Fgithub.com\u002Frealwangyibo\u002Fc-by-example\u002Fissues\& data-editable=\&true\& data-title=\&issues\&\u003Eissues\u003C\u002Fa\u003E提出。hello, world这句话,即使是没接触过编程的人也一定听说过(和\u003Ca href=\&https:\u002F\u002Fwww.v2ex.com\u002Ft\u002F306903#reply40\& data-editable=\&true\& data-title=\&「程序猿」\&\u003E「程序猿」\u003C\u002Fa\u003E形象绑定)。这是因为C语言的创始人在自编教程《The C Pro…&,&reviewingCommentsCount&:0,&meta&:{&previous&:null,&next&:null},&commentPermission&:&anyone&,&commentsCount&:0,&likesCount&:3}},&annotationDetail&:null,&commentsCount&:0,&likesCount&:3,&FULLINFO&:true}},&User&:{&realwangyibo&:{&isFollowed&:false,&name&:&生榴莲&,&headline&:&&,&avatarUrl&:&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-9d2cd751c5ebe8_s.jpg&,&isFollowing&:false,&type&:&people&,&slug&:&realwangyibo&,&bio&:&https:\u002F\u002Fgithub.com\u002Frealwangyibo&,&hash&:&e28db892e45b5a4418979f&,&uid&:72,&isOrg&:false,&description&:&&,&badge&:{&identity&:null,&bestAnswerer&:null},&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Frealwangyibo&,&avatar&:{&id&:&v2-9d2cd751c5ebe8&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false}},&Comment&:{},&favlists&:{}},&me&:{},&global&:{&experimentFeatures&:{&ge3&:&ge3_9&,&ge2&:&ge2_1&,&searchSectionStyle&:&loosen&,&androidPassThroughPush&:&all&,&newMore&:&new&,&nwebQAGrowth&:&experiment&,&showTipInLiveDetailsPage&:&true&,&nwebFeedAd&:&experiment&,&newSign&:&newVersion&,&qawebRelatedReadingsContentControl&:&open&,&marketTabBanner&:&market_tab_banner_show&,&liveStore&:&ls_a2_b2_c1_f2&,&qawebThumbnailAbtest&:&new&,&nwebSearch&:&nweb_search_heifetz&,&searchHybridTabs&:&without-tabs&,&enableVoteDownReasonMenu&:&enable&,&showVideoUploadAttention&:&true&,&isOffice&:&false&,&enableTtsPlay&:&post&,&newQuestionDiversion&:&false&,&wechatShareModal&:&wechat_share_modal_show&,&newLiveFeedMediacard&:&old&,&hybridZhmoreVideo&:&no&,&recommendationAbtest&:&new&,&nwebGrowthPeople&:&default&,&qrcodeLogin&:&qrcode&,&isShowUnicomFreeEntry&:&unicom_free_entry_off&,&newMobileColumnAppheader&:&new_header&,&questionRecommendReadingsAbtest&:&similar&,&androidDbCommentWithRepinRecord&:&open&,&androidDbRecommendAction&:&open&,&zcmLighting&:&zcm&,&androidDbFeedHashTagStyle&:&button&,&appStoreRateDialog&:&close&,&default&:&None&,&isNewNotiPanel&:&no&,&androidDbRepinSelection&:&open&,&nwebRelatedAdvert&:&default&,&androidProfilePanel&:&panel_b&,&nwebWriteAnswer&:&experiment&}},&columns&:{&next&:{},&94young&:{&following&:false,&canManage&:false,&href&:&\u002Fapi\u002Fcolumns\u002F94young&,&name&:&Young&,&creator&:{&slug&:&realwangyibo&},&url&:&\u002F94young&,&slug&:&94young&,&avatar&:{&id&:&c95bec334f7e2ca9f8d569e&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&}}},&columnPosts&:{},&columnSettings&:{&colomnAuthor&:[],&uploadAvatarDetails&:&&,&contributeRequests&:[],&contributeRequestsTotalCount&:0,&inviteAuthor&:&&},&postComments&:{},&postReviewComments&:{&comments&:[],&newComments&:[],&hasMore&:true},&favlistsByUser&:{},&favlistRelations&:{},&promotions&:{},&switches&:{&couldSetPoster&:false},&draft&:{&titleImage&:&&,&titleImageSize&:{},&isTitleImageFullScreen&:false,&canTitleImageFullScreen&:false,&title&:&&,&titleImageUploading&:false,&error&:&&,&content&:&&,&draftLoading&:false,&globalLoading&:false,&pendingVideo&:{&resource&:null,&error&:null}},&drafts&:{&draftsList&:[],&next&:{}},&config&:{&userNotBindPhoneTipString&:{}},&recommendPosts&:{&articleRecommendations&:[],&columnRecommendations&:[]},&env&:{&edition&:{&baidu&:false,&yidianzixun&:false,&qqnews&:false},&isAppView&:false,&appViewConfig&:{&content_padding_top&:128,&content_padding_bottom&:56,&content_padding_left&:16,&content_padding_right&:16,&title_font_size&:22,&body_font_size&:16,&is_dark_theme&:false,&can_auto_load_image&:true,&app_info&:&OS=iOS&},&isApp&:false,&userAgent&:{&ua&:&Mozilla\u002F5.0 (compatible, MSIE 11, Windows NT 6.3; Trident\u002F7.0; rv:11.0) like Gecko&,&browser&:{&name&:&IE&,&version&:&11&,&major&:&11&},&engine&:{&version&:&7.0&,&name&:&Trident&},&os&:{&name&:&Windows&,&version&:&8.1&},&device&:{},&cpu&:{}}},&message&:{&newCount&:0},&pushNotification&:{&newCount&:0}}}

我要回帖

更多关于 彩金狮王游戏机价格 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信