Linux 入門:基礎開發工具(上)vim,gcc/g++,make/makefile

目錄

一.軟件包管理器

一).軟件包

二).安裝軟件

三).刪除軟件

二.編輯器vim

?一).vim的基本介紹

1.正常/普通/命令模式(Normal mode)

2.插入模式(Insert mode)

3.底行模式(last line mode)

二).vim的基本操作

1.進入文本

2.切換模式?

3.退出文本?

三).?vim--正常模式--命令集

1.移動光標?

2.刪除文字

3.復制-粘貼

4.替換

5.?撤銷上?次操作

6.更改

7.跳至指定的行

四).vim--底行模式--命令集

1.列出行號

2.跳到文件中的某?行

3.查找字符

4.補充?

1).「: +? ! + 命令」

2).「: +?%s+ / 當前文本內容 / 新內容 /」

3).「: +? vs+ 文件名」

?五).簡單vim的配置

1.配置文件的位置

2.常用配置選項?

3.插件配置

三.編譯器gcc/g++

一).背景知識

二).gcc編譯選項

1.預處理(進行初步操作)

2.編譯(生成匯編)

3.匯編(生成機器可識別代碼)?

4.連接(生成可執行文件或庫文件)

5.補充?

三).動態鏈接和靜態鏈接

1.動態鏈接?

2.靜態鏈接?

四).靜態庫和動態庫

1.動靜態庫對比:

2.補充:

?四.自動化構建-make/Makefile

一).背景

二).理解

三).推導過程

?編輯


一.軟件包管理器


一).軟件包

  • 在Linux下安裝軟件, ?個通常的辦法是下載到程序的源代碼, 并進行編譯, 得到可執行程序.
  • 但是這樣太麻煩了, 于是有些人把?些常用的軟件提前編譯好, 做成軟件包(可以理解成windows上的安裝程序)放在?個服務器上, 通過包管理器可以很方便的獲取到這個編譯好的軟件包, 直接進行安裝.
  • 軟件包和軟件包管理器, 就好比 "App" 和 "應用商店" 這樣的關系.
  • yum(Yellow dog Updater, Modified)是Linux下非常常用的?種包管理器. 主要應用在Fedora,RedHat, Centos等發行版上.
  • Ubuntu:主要使用apt(Advanced Package Tool)作為其包管理器。apt同樣提供了?動解決依賴關系、下載和安裝軟件包的功能?

二).安裝軟件

# Centos
$ sudo yum install  sl# Ubuntu
$ sudo apt install  sl虛擬機安裝拓展軟件源:?yum install -y epel-realse

注意事項:

  • 安裝軟件時由于需要向系統目錄中寫入內容, ?般需要 sudo 或者切到 root 賬戶下才能完成.
  • yum/apt安裝軟件只能?個裝完了再裝另?個. 正在yum/apt安裝?個軟件的過程中, 如果再嘗試用yum/apt安裝另外?個軟件, yum/apt會報錯.
  • yum/apt 會?動找到都有哪些軟件包需要下載, 這時候敲 "y" 確認安裝.
  • 出現 "complete" 字樣或者中間未出現報錯, 說明安裝完成.

三).刪除軟件

# Centos
sudo yum remove sl# Ubuntu
sudo apt remove sl

二.編輯器vim


?一).vim的基本介紹

講解vim的三種模式(其實有好多模式,目前掌握這3種即可),分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區分如下。

1.正常/普通/命令模式(Normal mode)

控制屏幕光標的移動,字符、字或行的刪除,移動復制某區段及進入Insert mode下,或者到last line mode

2.插入模式(Insert mode)

只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令行模式。該模式是我們后面用的最頻繁的編輯模式。

3.底行模式(last line mode)

文件保存或退出,也可以進行文件替換,找字符串,列出行號等操作。在命令模式下,*shift+:* 即可進入該模式。要查看你的所有模式:打開 vim,底行模式直接輸入?:help vim-modes

?

二).vim的基本操作

1.進入文本

進?vim,在系統提?符號輸?vim及?件名稱后,就進?vim全屏幕編輯畫?

2.切換模式?

進?vim之后,是處于[正常模式],你要切換到[插?模式]才能夠輸文字

[正常模式]切換?[插?模式]? ?按下「i」

[插?模式]切換?[正常模式]? ?處于[插?模式],就只能?直輸?文字,如果發現輸錯了字,想用光標鍵往回移動,將該字刪除,可以先按?下「ESC」鍵轉到[正常模式]再刪除文字。當然,也可以直接刪除。

[正常模式]切換?[末?模式]? ?「shift + :」, 其實就是輸?「:」

3.退出文本?

退出vim及保存文件,在[正常模式]下,按?下「:」冒號鍵進?「Last line mode」:

w (保存當前?件)

wq (輸?「wq」,存盤并退出vim)

?q! (輸?q!,不存盤強制退出vim)

shift + z + z(保存退出vim)

三).?vim--正常模式--命令集

1.移動光標?

1.按「i」

按「i」切換進入插入模式「insert mode」,按“i”進?插?模式后是從光標當前位置開始輸入?件;

2.按「a」

按「a」進?插入模式后,是從目前光標所在位置的下?個位置開始輸入文字;

3.按「o」

按「o」進?插入模式后,是插?新的?行,從行首開始輸入文字

4.按「shift + g」

移動到文章的最后

5.按「 shift + $(4) 」

移動到光標所在行的“行尾“

6.按「shift + ^(6)」

移動到光標所在行的“行首"

7.按[g + g]

進入到本文開始?

8.?按[shift+g]

進入文本末端

9.其他的命令?

  • 按「w」:以單詞為單位,光標跳到下個字的開頭

  • 按「e」:以單詞為單位,光標跳到下個字的字尾

  • 按「b」:以單詞為單位,光標回到上個字的開頭

  • 按「#l」:光標移到該行的第#個位置,如:5l,56l

  • 按「ctrl」+「b」:屏幕往“后”移動一頁

  • 按「ctrl」+「f」:屏幕往“前”移動一頁

  • 按「ctrl」+「u」:屏幕往“后”移動半頁

  • 按「ctrl」+「d」:屏幕往“前”移動半頁

2.刪除文字

1.按「x」

每按?次,刪除光標所在位置的?個字符

2.按「d + d」

剪切或刪除光標所在行

3.其他

  • 「#x」:例如,「6x」表示刪除光標所在位置的“后面(包含自己在內)”6個字符

  • 「X」:大寫的X,每按?次,刪除光標所在位置的“前面”?個字符

  • 「#X」:例如,「20 + shift + x」表示刪除光標所在位置的“前面”20個字符

  • 「#dd」:從光標所在行開始刪除#行

3.復制-粘貼

1.按「yy」

復制光標所在行到緩沖區。

2.其他?

  • 「yw」:將光標所在之處到字尾的字符復制到緩沖區中。

  • 「#yw」:復制#個字到緩沖區

  • 「#yy」:例如,「6yy」表示拷貝從光標所在的該?“往下數”6行?字。

  • 「p」:將緩沖區內的字符貼到光標所在位置。注意:所有與“y”有關的復制命令都必須與“p”配合才能完成復制與粘貼功能。

4.替換

1.按「r」

替換光標所在處的字符。

2.按「R」

替換光標所到之處的字符,直到按下「ESC」鍵為?

3「shift + ~ 」

大小寫切換

5.?撤銷上?次操作

一旦退出wq文件編輯,就無法再進行文件撤銷了。但只是保存w,沒有進行退出q,可以撤銷。?

1.「u」

如果您誤執行?個命令可以馬上按下「u」,回到上?個操作。按多次“u”可以執行多次復。

2.「ctrl + r」

撤銷的恢復

6.更改

1.「cw」

更改光標所在處的字到字尾處

2.「c#w」

例如,「c3w」表示更改3個字

7.跳至指定的行

1.「ctrl」+「g」

列出光標所在行的行號。

2.「#?+ shift + g」

「15 + shift + g」,表示移動光標至文章的第15行行?。

四).vim--底行模式--命令集

在使用末行模式之前,請記住先按「ESC」鍵確定您已經處于正常模式,再按「:」冒號即可進?末行模式。

1.列出行號

「set nu」: 輸?「set nu」后,會在文件中的每?行前面列出行號。

2.跳到文件中的某?行

「#」:「#」號表示?個數字,在冒號后輸入?個數字,再按回車鍵就會跳到該行了,如輸入數字15,再回車,就會跳到文章的第15行。

3.查找字符

  • 「/關鍵字」: 先按「/」鍵,再輸入您想尋找的字符,如果第?次找的關鍵字不是您想要的,可以?直按「n」會往后尋找到您要的關鍵字為?。
  • 「?關鍵字」:先按「?」鍵,再輸入您想尋找的字符,如果第?次找的關鍵字不是您想要的,可以?直按「n」會往前尋找到您要的關鍵字為?。

4.補充?

1).「: +? ! + 命令

直接在vim中執行命令

2).: +?%s+ / 當前文本內容 / 新內容 /」

批量化替換

3).: +? vs+ 文件名

分屏操作 (切換文件:Ctrl + w + w)

?五).簡單vim的配置

1.配置文件的位置

  • 在目錄 /etc/ 下面,有個名為vimrc的文件,這是系統中公共的vim配置文件,對所有用戶都有效。

  • 而在每個用戶的主目錄下,都可以自己建立私有的配置文件,命名為:“.vimrc”。例如,/root目錄下,通常已經存在?個.vimrc文件,如果不存在,則創建之。

  • 切換用戶成為自己執行 su ,進入自己的主工作目錄,執行 cd ~

  • 打開自己命令下的.vimrc文件,執行 vim .vimrc

2.常用配置選項?

" 開啟語法高亮
syntax on" 顯示行號
set number" 高亮當前行
set cursorline" 自動縮進
set autoindent" 設置 Tab 為 4 個空格
set tabstop=4
set shiftwidth=4
set expandtab" 搜索時忽略大小寫
set ignorecase" 智能大小寫(如果搜索內容有大寫則區分大小寫)
set smartcase" 啟用鼠標支持
set mouse=a

3.插件配置

可以看下面這位大佬的連接,非常詳細

https://gitee.com/mirrorvim/vim-fast

三.編譯器gcc/g++


一).背景知識

  • 預處理(進行宏替換/去注釋/條件編譯/頭文件展開等)
  • 編譯(生成匯編)
  • 匯編(生成機器可識別代碼)
  • 連接(生成可執行文件或庫文件)

二).gcc編譯選項

1.預處理(進行初步操作)

  • 預處理功能主要包括宏定義,文件包含,條件編譯,去注釋等
  • 預處理指令是以#號開頭的代碼行。

實例: gcc –E hello.c –o hello.i

選項“-E”,該選項的作?是讓 gcc 在預處理結束后停止編譯過程。

選項“-o”是指目標?件,“.i”?件為已經過預處理的C原始程序。

2.編譯(生成匯編)

  • 在這個階段中,gcc 首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤后,gcc 把代碼翻譯成匯編語言。
  • 用戶可以使用“-S”選項來進行查看,該選項只進行編譯而不進行匯編,生成匯編代碼

實例: gcc –S hello.i –o hello.s

3.匯編(生成機器可識別代碼)?

  • 匯編階段是把編譯階段?成的“.s”文件轉成目標文件
  • 讀者在此可使用選項“-c”就可看到匯編代碼已轉化為“.o”的二進制目標代碼了

實例: gcc –c hello.s –o hello.o

4.連接(生成可執行文件或庫文件)

  • 在成功編譯之后,就進入了鏈接階段。

實例: gcc hello.o –o hello

5.補充?

- E -S -c? ?形成 .i .s .o文件

我們一般先將源文件編譯成 .o文件,再將所有的.o文件連接成可執行程序

三).動態鏈接和靜態鏈接

1.動態鏈接?

動態鏈接的基本思想是把程序按照模塊拆分成各個相對獨立部分,在程序運?時才將它們鏈接在?起形成?個完整的程序,而不是像靜態鏈接?樣把所有程序模塊都鏈接成?個單獨的可執行文件

舉個簡單的例子吧?

2.靜態鏈接?

在我們的實際開發中,不可能將所有代碼放在?個源文件中,所以會出現多個源文件,而且多個源文件之間不是獨立的,而會存在多種依賴關系,如?個源文件可能要調用另?個源文件中定義的函數,但是每個源?件都是獨立編譯的,即每個*.c文件會形成?個*.o文件,為了滿足前面說的依賴關系,則需要將這些源文件產生的目標文件進行鏈接,從而形成?個可以執行的程序。這個鏈接的過程就是靜態鏈接?

?

四).靜態庫和動態庫

  • 靜態庫(只在鏈接時有用)是指編譯鏈接時,把庫文件的代碼全部加入到可執行文件中,因此生成的文件比較大,但在運行時也就不再需要庫文件了。其后綴名?般為“.a”
  • 動態庫與之相反,在編譯鏈接時并沒有把庫文件的代碼加?到可執行文件中,而是在程序執行時由運行時鏈接文件加載庫,這樣可以節省系統的開銷。動態庫?般后綴名為“.so”,如前面所述的libc.so.6 就是動態庫。gcc 在編譯時默認使用動態庫。完成了鏈接之后,gcc 就可以生成可執行文件,如下所示。 gcc hello.o –o hello
  • gcc默認生成的二進制程序,是動態鏈接的,這點可以通過 file 命令驗證

強制使用靜態庫生成:

Linux下,動態庫XXX.so, 靜態庫XXX.a

Windows下,動態庫XXX.dll, 靜態庫XXX.lib

庫的名稱:

1.動靜態庫對比:

  • 動態庫形成的可執行程序體積一定很小
  • 可執行程序對靜態庫的依賴度小,動態庫不能缺失
  • 程序運行,需要加載到內存,靜態鏈接的,會在內存中出現大量的重復代碼,
  • 動態鏈接,比較節省內存和磁盤資源

2.補充:

使用C++?

?初步認識庫

?四.自動化構建-make/Makefile


一).背景

  • 會不會寫makefile,從?個側面說明了?個人是否具備完成大型工程的能力。
  • ?個工程中的源文件不計數,其按類型、功能、模塊分別放在若干個目錄中,makefile定義了?系列的規則來指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進行更復雜的功能操作
  • ?makefile帶來的好處就是?“自動化編譯”,?旦寫好,只需要?個make命令,整個工程完全自動編譯,極大的提高了軟件開發的效率。
  • make是?個命令工具,是?個解釋makefile中指令的命令工具,?般來說,大多數的IDE都有這個命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可見,makefile都成為了?種在工程方面的編譯方法。
  • make是?條命令,makefile是一個文件,兩個搭配使用,完成項目自動化構建

二).理解

makefile的基本概念---------依賴關系,依賴方法?

依賴關系

上面的文件code,它依賴code.c

依賴方法

gcc -o code code.c ,就是與之對應的依賴關系

1.默認老代碼不做重新編譯

2.那么make怎么知道可執行程序和源文件的新舊問題?

操作:stat - 文件名

Modify:內容變更,時間更新

Chang:屬性變更,時間更新

Access:常指的是文件

最近?次被訪問的時間。在Linux的早期版本中,每當文件被訪問時,其atime都會更新。但這種機制會導致大量的IO操作(多次查看才會改變)

通過對比源文件和可執行文件的Modify時間

?項目清理

  • 工程是需要被清理的
  • 像clean這種,沒有被第?個目標文件直接或間接關聯,那么它后?所定義的命令將不會被自動執行,不過,我們可以顯示要make執行。即命令?“make clean”,以此來清除所有的目標文件,以便重編譯
  • 但是?般我們這種clean的目標文件,我們將它設置為偽目標,? .PHONY 修飾,偽?標的特性是,總是被執行的

PHONY:讓make忽略源文件和可執行目標文件的M時間對比

三).推導過程

code:code.ogcc code.o -o code
code.o:code.sgcc -c code.s -o code.o
code.s:code.igcc -S code.i -o code.s
code.i:code.cgcc -E code.c -o code.i
.PHONY:clean
clean:rm -f *.i *.s *.o code

當然一般沒有人會像上面這么寫?

make是如何工作的,在默認的方式下,也就是我們只輸入make命令。

1. make會在當前目錄下找名字叫“Makefile”或“makefile”的文件。


2. 如果找到,它會找文件中的第?個目標文件(target),在上面的例子中,他會找到 code這個文件,并把這個文件作為最終的目標文件。


3. 如果 code文件不存在,或是 myproc 所依賴的后面的 myproc.o 文件的文件修改時間要比code這個文件新(可以用?touch 測試),那么,他就會執行后面所定義的命令來生成code這個文件。


4. 如果 code所依賴的 code.o 文件不存在,那么 make 會在當前文件中找目標為code.o 文件的依賴性,如果找到則再根據那?個規則生成?code.o 文件。(這有點像?個堆棧的過程)


5.當然,你的C文件和H文件是存在的啦,于是 make 會生成 code.o ?件,然后再用 code.o文件聲明 make 的終極任務,也就是執行文件 hello 了。


6. 這就是整個make的依賴性,make會?層??層地去找文件的依賴關系,直到最終編譯出第?個?標?件。


7. 在找尋的過程中,如果出現錯誤,比如最后被依賴的文件找不到,那么make就會直接退出,并報錯,而對于所定義的命令的錯誤,或是編譯不成功,make根本不理


?8. make只管文件的依賴性,即,如果在我找了依賴關系之后,冒號后面的文件還是不在,那么對不起,我就不工作啦。


?面對多個文件,我們習慣把源文件先編譯.o文件,再進行鏈接

BIN=proc.exe         #定義變量
CC=gcc
#SRC=$(shell ls *.c) #采用shell命令?方式,獲取當前所有.c?件名
SRC=$(wildcard *.c)  #或者使? wildcard 函數,獲取當前所有.c?件名
OBJ=$(SRC:.c=.o)     #將SRC的所有同名.c 替換 成為.o 形成?標?件列表
LFLAGS=-o            #鏈接選項
FLAGS=-c             #編譯選項
RM=rm -f             #引?命令$(BIN):$(OBJ)@$(CC) $(LFLAGS) $@ $^            #$@:代表?標?件名。 $^: 代表依賴?件列表@echo "linking ... $^ to $@"
%.o:%.c                               #%.c 展開當前?錄下所有的.c。 %.o: 同時展開同名.o@$(CC) $(FLAGS) $<                #%<: 對展開的依賴.c?件,?個?個的交給gcc。@echo "compling ... $< to $@"     #@:不回顯命令.PHONY:clean
clean:$(RM) $(OBJ) $(BIN) # $(RM).PHONY:test
test:@echo $(SRC)@echo $(OBJ)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900151.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900151.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900151.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在CPU服務器上部署Ollama和Dify的過程記錄

在本指南中&#xff0c;我將詳細介紹如何在CPU服務器上安裝和配置Ollama模型服務和Dify平臺&#xff0c;以及如何利用Docker實現這些服務的高效部署和遷移。本文分為三大部分&#xff1a;Ollama部署、Dify環境配置和Docker環境管理&#xff0c;適合需要在本地或私有環境中運行A…

請求被中止: 未能創建 SSL/TLS 安全通道。

需要安裝vs2019社區辦&#xff0c;下載VisualStudioSetup.exe后&#xff0c;報無法從"https://aka,ms/vs/16/release/channel"下載通道清單錯誤&#xff0c;接著打開%temp%目錄下的最新日志&#xff0c;發現日志里報&#xff1a; [27d4:000f][2025-04-04T21:15:43] …

第六課:AI繪畫進階模型

文章目錄 Part.01 文本嵌入(Embeddings)Part.02 低秩模型(LoRa)Part.03 超網絡(Hypernetwork)Part.01 文本嵌入(Embeddings) Embeddings(Textual Inversion)Checkpoint如果是字典,Embeddings就是書簽,讓檢索更加高效深度學習中Embeddings叫做嵌入式向量使用方法:下載Embeddi…

閱讀分析Linux0.11 /boot/setup.s

目錄 第一部分第二部分第三部分 該源文件功能分為三部分&#xff1a; &#xff08;1&#xff09;源文件開始部分是通過各種中斷指令&#xff0c; 初始化計算機的組成硬件&#xff0c;獲得硬件的參數&#xff0c;然后保存到段空間0X9000。該空間原來是保存加載到內存的引導扇區內…

TSMaster在新能源汽車研發測試中的硬核應用指南

——從仿真到標定&#xff0c;全面賦能智能汽車開發 引言&#xff1a;新能源汽車測試的挑戰與TSMaster的破局之道 新能源汽車的快速發展對研發測試提出了更高要求&#xff1a;復雜的電控系統、高實時性通信需求、多域融合的驗證場景&#xff0c;以及快速迭代的開發周期。傳統測…

web漏洞靶場學習分享

靶場&#xff1a;pikachu靶場 pikachu漏洞靶場漏洞類型: Burt Force(暴力破解漏洞)XSS(跨站腳本漏洞)CSRF(跨站請求偽造)SQL-Inject(SQL注入漏洞)RCE(遠程命令/代碼執行)Files Inclusion(文件包含漏洞)Unsafe file downloads(不安全的文件下載)Unsafe file uploads(不安全的文…

《Linux內存管理:實驗驅動的深度探索》【附錄】【實驗環境搭建 4】【Qemu 如何模擬numa架構】

我們在學習 linux 內核時&#xff0c;會涉及到很多 numa 的知識&#xff0c;那我們該如何在 qemu 中模擬這種情況&#xff0c;來配合我們的學習呢&#xff1f; 我們該如何模擬 如下的 numa 架構 Qemu 模擬 NUMA 架構 -M virt,gic-version3,virtualizationon,typevirt \ -cp…

YOLOv12 從預訓練邁向自主訓練,第一步數據準備

視頻講解&#xff1a; YOLOv12 從預訓練邁向自主訓練&#xff0c;第一步數據準備 前面復現過yolov12&#xff0c;使用pre-trained的模型進行過測試&#xff0c;今天來講下如何訓練自己的模型&#xff0c;第一步先準備數據和訓練格式 https://gitcode.com/open-source-toolkit/…

Keil 5 找不到編譯器 Missing:Compiler Version 5 的解決方法

用到自記&#xff1a; 下載地址&#xff1a; Keil5 MDK541.zip ?編輯https://pan.baidu.com/s/1bOPsuVZhD_Wj4RJS90Mbtg?pwdMDK5 問題描述 沒有找到 compiler version5 &#xff1a; 1. 下載 Arm Compiler 5 也可以直接點擊下載文章開頭的文件。 2. 安裝 直接安裝在KEI…

結腸鏡3D視頻數據集-C3VD論文中文版

文章目錄 標題作者摘要一、介紹1.1. 相關工作1.1.1. 內鏡重建數據集1.1.2. 注冊真實和虛擬內窺鏡圖像1.1.3. 2D-3D注冊1.2. 貢獻 二、方法2.1. 幻影模型生產2.2. 數據采集2.3. 注冊流程概述2.3.1. 數據預處理2.3.2. 目標深度估計2.3.3. 渲染深度幀2.3.4. 邊緣損失和優化 2.4. 模…

hadoop 集群的常用命令

# 查看HDFS目錄內容 hadoop fs -ls /path # 創建目錄 hadoop fs -mkdir /path/to/dir # 上傳本地文件到HDFS hadoop fs -put localfile /hdfs/path # 下載HDFS文件到本地 hadoop fs -get /hdfs/path localfile # 查看文件內容 hadoop fs -cat /hdfs/path/file # 刪除文件/…

MaxEnt物種分布建模全流程;R+ArcGIS+MaxEnt模型物種分布模擬、參數優化方法、結果分析制圖與論文寫作

融合R語言的MaxEnt模型具有以下具體優勢&#xff1a; 數據處理高效便捷 &#x1f4ca;強大的數據預處理功能&#xff1a;R語言提供了豐富的數據處理工具&#xff0c;能夠輕松完成數據清洗、篩選、轉換等操作&#xff0c;為MaxEnt模型提供高質量的輸入數據。 &#x1f310;自動…

Java基礎 4.4

1.方法快速入門 public class Method01 {//編寫一個main方法public static void main(String[] args) {//方法使用//1.方法寫好后&#xff0c;如果不去調用(使用)&#xff0c;不會輸出Person p1 new Person();p1.speak();//調用方法 p1.cal01();//調用計算方法1p1.cal02(10);…

Tiktok矩陣運營中使用云手機的好處

Tiktok矩陣運營中使用云手機的好處 云手機在TikTok矩陣運營中能夠大幅提高管理效率、降低封號風險&#xff0c;并節省成本&#xff0c;是非常實用的運營工具。TikTok矩陣運營使用云手機有很多優勢&#xff0c;特別是對于需要批量管理賬號、提高運營效率的團隊來說。以下是幾個…

指針函數、函數指針和指針函數指針的全面總結

C中指針函數、函數指針和指針函數指針的全面總結 一、核心概念區別 概念本質聲明示例核心特征指針函數返回指針的函數int* func(int);函數定義&#xff0c;返回值是指針類型函數指針指向函數的指針int (*ptr)(int);變量&#xff0c;存儲函數地址指針函數指針指向指針函數的指…

CherryStudio MCP實戰(一)filesystem篇

隨著DeepSeek的爆火&#xff0c;各行各業都在圍繞著大模型尋找新質量生產力。簡單來說&#xff0c;DeepSeek像是人的大腦&#xff0c;他可以推理&#xff0c;幫你思考一些問題&#xff0c;但是具體要做一些事情的時候&#xff0c;他還需要“手腳”來協同。MCP&#xff08;Model…

TCP基礎篇(一)

文章目錄 1.TCP 是如何保證可靠性的?2. 滑動窗口機制3 超時重傳4.TCP 報文格式5. 什么是 TCP 協議5.1 如何唯一確定一個 TCP 連接 6.TCP 三次握手過程6.1 可以兩次握手嗎? 7.TCP 的四次揮手7.1 為什么客戶端要等待2MSL&#xff1f; 8.linux 中查看 TCP 的連接9.TCP 為什么要有…

【Axure元件分享】時間范圍選擇器

時間范圍選擇器下拉選擇開始時間和結束時間&#xff0c;實現效果如下。 源文件截圖&#xff1a; 元件獲取方式&#xff1a;

大模型學習一:deepseek api 調用實戰以及參數介紹

一、說明 DeepSeek&#xff08;杭州深度求索人工智能基礎技術研究有限公司&#xff09;是一家專注于大語言模型&#xff08;LLM&#xff09;研發的中國創新型科技公司&#xff0c;成立于2023年7月17日&#xff0c;由幻方量化孵化。其核心產品包括開源推理模型DeepSeek-R1、多模…

【Linux網絡與網絡編程】03.UDP Socket編程

一、UDP Socket編程接口 // 創建套接字 int socket(int domain, int type, int protocol); // 參數&#xff1a; // domain&#xff1a;域&#xff08;協議家族&#xff09;&#xff0c;這里使用 AF_INET 表示進行網絡編程 // type&#xff1a;網絡通信傳輸的類型&#xff0…