zoukankan      html  css  js  c++  java
  • Linux 学习4-GCC

    一、GCC的使用
    • GCC是可编译C、C++,以及Java等的编译器
    • GCC:功能强大,稳定,免费
      1. "gcc -v" 可以用来查看gcc版本,并验证其是否正常运行。
      2. 用前面学过的vi编辑器新建"hello.c"文件,然后进入书写第一个Hello world 代码
      #include <stdio.h>
      int main()
      {
      	printf("Hello World!!!
      ");
      }
      
      1. “gcc -o 输出文件名 源文件” (o:output abbreviation ) 输出文件名自己随便定义; 源文件为自己的源代码文件"hello.c";enter键后如果语法有错误,gcc会报错,如果没有错的话,则什么也不显示。
      2. 然后"ls",查看该目录下文件,会发现多了一个自己定义的输出文件名文件,利用"file 输出文件名",可以看到该文件为executable file---可执行文件;
      3. 利用"./可执行文件名" 操作可以执行该文件,并可看见输出“Hello world!!!”
    • 编译过程分为:
      • 预处理:preprocessing
      • 编译:compilation
      • 汇编:assembly
      • 链接:linking.
    • GCC使用前需要安装好一些文件:g++、gcc、ssh等
    二、指针的复习
    • 练习:使用指针取值; 移动指针
    void test1()
    {
    	int a;
    	int *c;
    	char *pc;
    	a=0x123456;
    	c=&a;
    	pc=(char *)&a;
    	printf("&a =0x%p
    ",&a);
    	printf("*c =0x%x
    ",*c);
    	printf("*pc=0x%x
    ",*pc); pc++;//char 每次只能输出一个字节,因此会逐渐向上输出a的剩余数值。
    	printf("//=======================
    ");
    	printf("*pc=0x%x
    ",*pc); pc++;
    	printf("*pc=0x%x
    ",*pc); pc++;
    	printf("*pc=0x%x
    ",*pc); 
    }
    

    输出结果为:
    在这里插入图片描述
    由图片可以得出:

    1. 地址存储是小端模式:a=0x123456, 则低地址存储56,高一级存储34,,如此向上。总归就是高位存高地址,低位存低地址。
    2. char * 类型,每次只能存储1个字节的大小, a为int型,4字节,所以第一个char * 只能存a的小端数字56.
    3. 指针每加1的大小,实际上是加了指针类型大小的内存。如c为int* 型,若地址为0x000000,则c+1地址为0x0000004。若c为char *型,初始地址为0x000000, c++地址为0x000001。

    未完待续

    三、指向数组和字符串的指针
    • 数组指针:数组名对应就是指针变量P,且如果数组为int型,数组名的地址为0x000000,则"P+1"表示地址增加4,因为Int型大小为4字节,即p+1--->a[1]地址为0x000004.
    • 数据在内存中的存储以 "小端模式":数据的高字节存放在内存中的高地址,低字节存放在低地址,如int型数组a[3]的首地址为0x000000,值为0xff887766,则:
    地址
    0x00000C 0xff
    0x000008 0x88
    0x000004 0x77
    0x000000 0x66
    • char *pc="abc" 表示pc是指向字符串的字符指针,pc就是字符串"abc"的首字符'a'的地址.
    四、gcc编译过程详解
    Higher you climb, more view you will see.
  • 相关阅读:
    WPF 自定义CheckBox样式
    WPF中的动画——(二)From/To/By 动画
    C# 异步编程
    C# 二维码生成 ( QRCoder )
    ASP.NET Core中的依赖注入(2):依赖注入(DI)
    从零搭建分布式文件系统MinIO比FastDFS要更合适
    WPF : ControlTemplate和DataTemplate的区别
    wpf 中 theme 的使用 和 listview 模板的使用.
    wpf 中的DataTemplate 绑定控件
    HTTP状态码含义
  • 原文地址:https://www.cnblogs.com/yyfighting/p/12770736.html
Copyright © 2011-2022 走看看