国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

0基礎學習ios開發筆記第一天

2019-11-14 18:04:56
字體:
來源:轉載
供稿:網友

Ios操作

界面操作

快捷鍵

command + c 復制

command+v 粘貼

command +a 全選

command +s 保存

command +z 撤銷

command +x  剪切

command +space  輸入法的切換

command +<—(退格鍵)   刪除光標所在行,光標前的所有內容

option鍵(ios)--alt(windows)鍵

command在Windows鍵盤中就是windows鍵

linux命令

cd

cd:change directory 切換目錄

liuzw@Ubuntu:~/sunjie$ cd cliuzw@ubuntu:~/sunjie/c$ 

 

cd  ~ 或者直接輸入cd,是切換到當前用戶的主目錄

liuzw@ubuntu:~/sunjie/c$ cd liuzw@ubuntu:~$

 

cd  -  撤銷上一次的cd操作

liuzw@ubuntu:~/sunjie$ cd cliuzw@ubuntu:~/sunjie/c$ cd liuzw@ubuntu:~$ cd -/home/liuzw/sunjie/cliuzw@ubuntu:~/sunjie/c$ 

 

cd / 回到根目錄

cd .. 回到父目錄

liuzw@ubuntu:~/sunjie/c$ cd ..liuzw@ubuntu:~/sunjie$ 

 

pwd:PRint workdirectory查看當前工作路徑

 

liuzw@ubuntu:~/sunjie$ pwd/home/liuzw/sunjie

ls: list source 查看當前工作路徑下的資源,包括文件及目錄

 

ls –a(all) 查看所有資源,包括隱藏的

 

ls –l(list one file per line)

 

紅色圈住的第一列表示資源類型,其中的d表示目錄,-表示文件

紅色圈住的第二列表示占用磁盤空間大小

mkdir : make directory 創建目錄

 

mkdir –p 當父目錄不存在時,就創建父目錄,而不是報錯

 

touch 一般用來創建空文件

echo 回顯數據 輸出變量

 

$? 表示上一次命令的執行結果,0表示執行正確,其他的表示錯誤,如上圖示

 

cp :copy

拷貝文件

 

拷貝目錄

 

 

cat 顯示文件內容,只能看文件,不能看目錄

 

 

 

 

cat –n 顯示時加行號

 

C語言

 

計算機只認識1和0,編程語言的層級如下:

機器語言

匯編語言

高級語言(c語言)

1001,0010,0010,1111

mov  2 f

while   if  int

C語言的編譯過程

編譯:實質就是翻譯。常用的編譯器如:gcc

可執行文件是運行時環境和一些.o結尾的文件的集合。將我自己目標文件和這些文件鏈接以后,形成可執行的文件。

目標文件是二進制機器碼文件,可執行文件也是二進制的機器碼文件,但是目標文件不能在機器上運行,必須與運行環境等鏈接才可運行。而可執行文件可以在機器上運行。

編寫我的第一個c程序,hello.c他hello.h

hello.h文件內容如下:

#define HELLO "helloworld"

Hello.c文件內容如下

#include <stdio.h>#include "hello.h"int main(void){    printf(HELLO);    return 0;}

整個編譯階段分為四步:

第一步:預處理,hello.c轉變為hello.i,一般為隱式執行

預處理命令:gcc -E hello.c -o hello.i,生成預處理文件簡略如下:

extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));

extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;

extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));

# 943 "/usr/include/stdio.h" 3 4

# 2 "hello.c" 2

# 1 "hello.h" 1

# 3 "hello.c" 2

int main(void)

{

    printf("helloworld");

    return 0;

}

在預處理階段,宏HELLO被替換為實際內容

第二步:匯編階段,將C語言文件轉換為匯編語言文件,也就是hello.i轉變為hello.s

命令:gcc -S hello.i -o hello.s

hello.s文件內容如下

    .file   "hello.c"    .section   .rodata.LC0:    .string "helloworld"    .text    .globl  main    .type   main, @functionmain:.LFB0:    .cfi_startproc    pushq   %rbp    .cfi_def_cfa_offset 16    .cfi_offset 6, -16    movq    %rsp, %rbp    .cfi_def_cfa_register 6    movl    $.LC0, %edi    movl    $0, %eax    call    printf    movl    $0, %eax    popq    %rbp    .cfi_def_cfa 7, 8    ret    .cfi_endproc.LFE0:    .size   main, .-main    .ident  "GCC: (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4"    .section   .note.GNU-stack,"",@progbits

第三步:將匯編語言編譯成對應的機器語言(二進制格式),也就是hello.s轉換為hello.o

命令:

gcc -c hello.s -o hello.o

使用命令

objdump -d hello.o

反匯編hello.o文件內容如下:

hello.o:     file format elf64-x86-64

Disassembly of section .text:

0000000000000000 <main>:

   0: 55                   push   %rbp

   1: 48 89 e5                mov    %rsp,%rbp

   4: bf 00 00 00 00         mov    $0x0,%edi

   9: b8 00 00 00 00         mov    $0x0,%eax

   e: e8 00 00 00 00         callq  13 <main+0x13>

  13: b8 00 00 00 00         mov    $0x0,%eax

  18: 5d                   pop    %rbp

  19: c3                   retq

第四步:將hello.o文件與運行環境鏈接,形成可執行文件

命令:

gcc hello.o -o hello

查看hello文件內容,命令objdump –d hello反匯編查看

000000000040052d <main>:

  40052d: 55                     push   %rbp

  40052e: 48 89 e5               mov    %rsp,%rbp

  400531: bf d4 05 40 00         mov    $0x4005d4,%edi

  400536: b8 00 00 00 00         mov    $0x0,%eax

  40053b: e8 d0 fe ff ff         callq  400410 <printf@plt>

  400540: b8 00 00 00 00         mov    $0x0,%eax

  400545: 5d                     pop    %rbp

  400546: c3                     retq  

  400547: 66 0f 1f 84 00 00 00   nopw   0x0(%rax,%rax,1)

  40054e: 00 00

以上為鏈接后的main函數,注意與未鏈接的區別:

0000000000000000 <main>:

   0:     55                   push   %rbp

   1:     48 89 e5                  mov    %rsp,%rbp

   4:     bf 00 00 00 00           mov    $0x0,%edi

   9:     b8 00 00 00 00           mov    $0x0,%eax

   e:     e8 00 00 00 00           callq  13 <main+0x13>

  13:     b8 00 00 00 00           mov    $0x0,%eax

  18:     5d                   pop    %rbp

  19:     c3                   retq

執行文件,命令./hello

如果把hello.c程序中的return 0 去掉的話,返回值就不一定為0

liuzw@ubuntu:~/sunjie/c$ ./a.out

helloworldliuzw@ubuntu:~/sunjie/c$ echo $?

10

總結:以上所有具體的編譯過程可直接執行如下命令,直接形成可執行文件a.out

,也可加-o hello

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 边坝县| 民权县| 花垣县| 县级市| 万荣县| 新邵县| 临安市| 新郑市| 宜川县| 盈江县| 顺昌县| 万州区| 科技| 两当县| 宝兴县| 乌鲁木齐县| 阳东县| 旅游| 泸定县| 宁海县| 汉阴县| 新泰市| 余姚市| 徐闻县| 多伦县| 峨眉山市| 双峰县| 沿河| 七台河市| 铜梁县| 海南省| 同仁县| 镇巴县| 武功县| 额敏县| 开江县| 八宿县| 军事| 集贤县| 泾阳县| 河北区|