首页 > 编程语言 >初学C++第一天

初学C++第一天

时间:2023-04-06 10:14:13浏览次数:33  
标签:文件 头文件 函数 第一天 代码 C++ C语言 初学 预处理


C语言简介:     BCPL->New B->C->UNIX->Minix->Linux->gcc     C语言诞生于1971~1973年,美国贝尔实验室,肯.汤普逊和丹尼斯.里奇     C语言是专门为了编写操作系统而诞生的语言,天生适合对硬件编程,以运行速度快而著称,而且C语言非常适合编写数据结构和算法     因为C语言出现时间太早,所以有很多缺陷,因为没有想到普通人也可以编程,但是很多前辈总结避免这些缺陷或陷阱的经验     《C语言三剑客》-》《C陷阱与缺陷》《C与指针》     《C程序设计语言》
    C语言的语法非常自由,自由意味着危险,自由源于自律
    C89语法标准,旧的系统中的默认标准     C99语法标准,对C语言的扩展和增强 -std=gnu99     C11语法标准,全新的升级
C语言第一个程序:     #include <stdio.h>     程序员所编写的代码都不是标准的C代码,需要一段程序翻译成标准C代码,负责翻译的程序叫做预处理器,翻译的过程叫做预处理,被翻译的语句叫做预处理指令,以#开头的语句都是预处理指令         #include 的功能是把一个头文件导入(拷贝)到当前位置             #include <xxx.h>                 从系统指定的路径下查找并加载头文件             #include "xxx.h"                 先从当前工作路径查找,如果找不到再从系统指定的路径查找并加载     stdio.h         头文件:以.h结尾,里面存储的是一些辅助性的代码,绝大多数都是函数的声明         源文件:以.c结尾,里面存储的是实际的功能性的代码         C语言标准委员会为C语言以函数形式提供的一些基础功能,这些函数都被封装在libc.so         然后通过很多的头文件对不同功能的标准库函数进行了说明,stdio.h就是其中之一,常用:stdlib.h string.h
    int main()         C语言中函数是管理代码的最小单位,一个函数就是一个功能的实现         main函数是程序的入口,有且只有一个         int 是一种数据类型,表示main函数的执行结果是一个整数值         return 的作用:             1、返回一个执行结果给函数的调用者                 正数    出现异常(别人导致)                 0       一切正常                 负数    出现错误(自己导致)             2、提前结束函数                 main函数遇到return语句程序结束         main函数是由操作系统调用,所以它的返回值给了操作系统,反应了程序是如何结束的     {         printf("Hello World!\n");         return 0;     }     printf/scanf 是标准库的输出输入函数,一般用于调试代码         printf("---------\n");         xxxx         printf("---------\n");     转义字符:键盘上有一些不好直接表示的符号,通过一些特殊字符搭配来表示,这种字符搭配称为转移字符         \n  换行         \t  制表符,Tab键         \a  铃响         \b  光标后退一个字符             printf("\b \b") 退格效果         \r  光标回到行首         %%  显示一个%         \\  显示一个\     注意:C语言是以分号作为一行代码的结束标志,使用大括号来划分代码     注意:必须使用英文输入法
编译器:     负责把人能看得懂的文本文件,翻译成计算机能看得懂的二进制文件,由预处理器、编译器、链接器组成     gcc编译器是GNU社区为了编译Linux内核代码而开发一款免费的编译器,默认语法标准是C99或者C89     常用的编译参数:         -E      只显示预处理的结果         -S      生成汇编文件         -c      只编译不链接         -o      指定编译结果的名字         -I      指定头文件的加载路径 -I path         -l      指定要使用的代码库 -lm导入数学库         -Wall   尽可能多地产生警告信息         -Werror 把警告当错误处理         -std    设置编译语法标准 -std=gnu89/99
C代码如何从源文件变成可执行文件的过程:     1、预处理:把源文件翻译成预处理文件         gcc -E xxx.c    显示预处理结果到终端         gcc -E xxx.c -o xxx.i 把预处理的结果存储到xxx.i预处理文件中     2、编译: 把预处理文件翻译成汇编文件         gcc -S xxx.i    生成以.s结尾的汇编文件     3、汇编: 把汇编文件翻译成二进制的目标文件         gcc -c xxx.s    生成以.o结尾的目标文件     4、链接: 把若干个目标文件合并成一个可执行文件         gcc a.o b.o c.o ... 生成a.out可执行文件
C语言中的文件类型:     .c  源文件     .h  头文件     .h.gch  头文件的编译结果文件,会被优先使用     .i  预处理文件     .s  汇编文件     .o  目标文件     .so 共享库文件     .a  静态库文件



       
               

标签:文件,头文件,函数,第一天,代码,C++,C语言,初学,预处理
From: https://www.cnblogs.com/mrlinan/p/17291752.html

相关文章

  • 【c&c++】#ifdef __cplusplus extern “C”的作用详解
    extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern"C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因......
  • 【c&c++】C语言 char*和char[]用法
    char[]定义的是一个字符数组,注意强调是数组。char*定义的是一个字符串指针,注意强调是指针。char*s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:当char*s=“hello”;后,不能使用s[0]=‘a’;语句进行赋值。这是将提示内存不能为"written"......
  • C/C++ 占位符总结
    ......
  • C#调用C++ 平台调用P/Invoke 字符串【三】
    Gitp-invoke源码地址 C#调用C++平台调用P/Invoke调用约定【一】C#调用C++平台调用P/Invoke函数指针/回调函数【二】C#调用C++平台调用P/Invoke字符串【三】C#调用C++平台调用P/Invoke错误码LastError【四】C#调用C++平台调用P/Invoke结构体--输入输出参数、返回值、返......
  • C#调用C++ 平台调用P/Invoke 函数指针/回调函数【二】
    Gitp-invoke源码地址 C#调用C++平台调用P/Invoke调用约定【一】C#调用C++平台调用P/Invoke函数指针/回调函数【二】C#调用C++平台调用P/Invoke字符串【三】C#调用C++平台调用P/Invoke错误码LastError【四】C#调用C++平台调用P/Invoke结构体--输入输出参数、返回值、返......
  • C++/CLI 托管C++的数组介绍【4】
    Git源码地址 C++/CLI托管C++的托管与非托管字符串的相互转换【1】C++/CLI托管C++的数据类型介绍【2】C++/CLI托管C++的基本数据类型及函数【3】C++/CLI托管C++的数组介绍【4】C++/CLI托管C++之字符串封装【5】C++/CLI托管C++之enum枚举封装【6】C++/CLI托管C++之类、属性......
  • C++逆向分析——this指针
    this指针概述C++是对C的拓展,C原有的语法C++都支持,并在此基础上拓展了一些语法:封装、继承、多态、模板等等。C++拓展新的语法是为了让使用更加方便、高效,这样就需要编译器多做了很多事情,接下来我们就需要一一学习这些概念。封装之前我们学习过结构体这个概念,那么结构体可以......
  • c++ std::string_view
    std::string_view系C++17标准发布后新增的内容。C++17中我们可以使用std::string_view来获取一个字符串的视图,字符串视图并不真正的创建或者拷贝字符串,而只是拥有一个字符串的查看功能。std::string_view比std::string的性能要高很多,因为每个std::string都独自拥有一份字符串的拷......
  • WebGL初学:使用WebGL绘制一个点
    示例代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>使用WebGL绘制一个点</title></head><body><!--canvas标签创建一个宽高均为500像素,背景为蓝色的矩形画布--><canvasi......
  • c++ struct和class
    c++中对象通常用struct和class表示。在c语言中,struct用来创建结构体,结构体中只能包含基本数据成员。而在c++中struct能包含成员函数,能实现多态(继承)。c++中struct和class的功能十分类似,但是在面向对象的过程中class的使用较多,两者的区别如下:struct与class的主要区别在于默认......