導航:首頁 > 凈水問答 > c文件擴展名過濾

c文件擴展名過濾

發布時間:2022-09-23 09:02:29

⑴ C語言源程序文件、目標文件和可執行文件的擴展名是什麼

C語言源程序文件擴展名: .c

目標文件擴展名: .obj

可執行文件擴展名: .exe

源程序:程序可以用高級語言或匯編語言編寫,用高級語言或匯編語言編寫的程序稱為源程序。C語言源程序的擴展名為「.c」。源程序不能直接在計算機上執行,需要用「編譯程序」將源程序編譯為二進制形式的代碼。

目標程序:源程序經過「編譯程序」編譯所得到的二進制代碼稱為目標程序。目標程序
的擴展名為「.obj」。
目標代碼盡管已經是機器指令,但是還不能運行,因為目標程序還沒有解決函數調用問題,需要將各個目標程序與庫函數連接,才能形成完整的可執行程序。

可執行程序:目標程序與庫函數連接,形成的完整的可在操作系統下獨立執行的程序
稱為可執行程序。可執行程序的擴展名為「.exe「。

(1)c文件擴展名過濾擴展閱讀:

C語言創建程序的步驟:

編輯:就是創建和修改C程序的源代碼-我們編寫的程序稱為源代碼。

編譯:就是將源代碼轉換為機器語言。編譯器的輸出結果成為目標代碼,存放它們的文件稱為目標文件。擴展名為.o或者.obj。(該部分編譯是指匯編器編譯匯編語言或者編譯器編譯高級語言)

鏈接:鏈接器將源代碼由編譯器產生的各種模塊組合起來,再從C語言提供的程序庫中添加必要的代碼模塊,將它們組成一個可執行的文件。在windows下擴展名為.exe,Unix下無擴展名。

執行:運行程序。

IT專家網——C語言編程程序編譯全過程剖析

⑵ 如何在C語言中屏蔽轉義字元的功能,析出文件路徑文件名,擴展名。C:\my \so.net.(需要不用\\ 代替\)

獲取方法,參考實例如下:'獲取路徑名各部分:如:c:\dir1001\aaa.txt'獲取路徑路徑c:\dir1001\PublicFunctionGetFileName(FilePathFileNameAsString)AsString'獲取文件名aaa.,JAsIntegeriLen(FilePathFileName)JInStrRev(FilePathFileName,"\")GetFileNameMid(FilePathFileName,J+1,i)EndFunction''獲取路徑路徑c:\dir1001\PublicFunctionGetFilePath(FilePathFileNameAsString)AsString'獲取路徑路徑c:\dir1001\(FilePathFileName,"\")GetFilePathMid(FilePathFileName,1,J)EndFunction'獲取文件名但不包括擴展名(FilePathFileNameAsString)AsString'獲取文件名但不包括擴展名,JAsInteger,kAsIntegeriLen(FilePathFileName)JInStrRev(FilePathFileName,"\")kInStrRev(FilePathFileName,".")Ifk0ThenGetFileNameNoExtMid(FilePathFileName,J+1,i-J)ElseGetFileNameNoExtMid(FilePathFileName,J+1,k-J-1)EndIfEndFunction'====='獲取擴展名.(FilePathFileNameAsString)AsString'獲取擴展名.,JAsIntegeriLen(FilePathFileName)JInStrRev(FilePathFileName,".")IfJ0ThenGetFileExtName".txt"ElseGetFileExtNameMid(FilePathFileName,J,i)EndIfEndFunction

⑶ c語言文件中常見的擴展名有哪些

你說的是VC工程的吧
DWS:工作區文件(一般打開這個)
dsp:工程文件
c:源文件
h:頭文件
常用的就這些

⑷ 為什麼C保存後的文件擴展名是".c"而不是".txt"~因為它明明是詞本~

文件共有兩類。一類是文本,另一類是二進制特製格式。文本文件可以用任意的文本編輯器打開,二進制文件必須使用專用程序。文件的擴展名只是人們為了區分文件而形成的一種約定而已,和文件本質無關。文件本質並不能從文件名本身區分,但是我們一般約定擴展名幫助區分。
你即使搞個擴展名*.doc的文本也可以,只是*.doc通常約定作為Word的二進制文件擴展名而已。(別說Word打開的文件顯示為文本你就認為那是文本了,那是不一定的。當然,Word也是可以寫文本的,但通常用來製作這款軟體專用的二進制文件。)

⑸ 後綴為.c的文件是什麼格式的使用什麼軟體來打開

後綴為.c文件是C語言源程序文件,可以通過記事本或者MicrosoftVisualC++6.0等打開。

一、源程序,是指未經編譯的,按照一定的程序設計語言規范書寫的,人類可讀的文本文件,通常由高級語言編寫。

二、這種典型格式的目的是為了編譯出計算機可執行的程序,將人類可讀的程序代碼文本翻譯成為計算機可以執行的二進制指令,這種過程叫做編譯,由各種編譯器來完成。

三、編譯器運行有以下四個過程:

  1. 頭文件的預編譯,預處理,編譯器在編譯源代碼時,會先編譯頭文件,保證每個頭文件只被編譯一次,在預處理階段,編譯器將c文件中引用的頭文件中的內容全部寫到c文件中。

2.詞法和語法分析(查錯)

3.編譯(匯編代碼,.obj文件)轉化為匯編碼,這種文件稱為目標文件。後綴為.obj。

4.鏈接(二進制機器碼,.exe文件)將匯編代碼轉換為機器碼,生成可執行文件。

(5)c文件擴展名過濾擴展閱讀:

C語言後綴.h文件和.c文件作用

.h文件和.c文件作用

  1. xx.h文件.h中一般放的是同名.c文件中定義的變數、數組、函數的聲明,需要讓.c外部使用的聲明。x.c文件.c文件一般放的是變數、數組、函數的具體定義

  2. xx.c文件.c文件一般放的是變數、數組、函數的具體定義

⑹ 在c語言中,怎樣去掉文件後綴名

1、去掉文件後綴名可以通過修改文件名的方式實現。要調用操作系統提供的API函數,比如Windows上的MoveFile(),也可以直接調用cmd中已提供的重命名命令——rename。下面的示例代碼,調用rename命令來重名命文件名。
2、常式:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain(intac,char*pav[])
{
if(ac!=3){
printf("程序名要重命名的文件路徑新的文件名 ");
printf("示例:test.exe1.txt2.txt ");
return0;
}
if(access(pav[1],0)!=0){
printf("不存在該文件 ");
return0;
}
charszcmd[256]="cmd/crename";
strcat(szcmd,pav[1]);
strcat(szcmd,"");
strcat(szcmd,pav[2]);
system(szcmd);
return0;
}

⑺ 應急:C語言文件中常用的文件擴展名有哪些

.c 就是源文件 .h頭文件
頭文件是定義一些函數供我們調用的
如printf函數就定義在stdio.h中
用tc編譯的話 常見錯誤提示有這些
Ambiguous symbol ''xxx'' 不明確的符號
Divide error 除數太小以至於結果太大
Array bounds missing 丟失數組界限符
Array size toolarge 數組尺寸太大

Call of non-function 調用未定義的函數
Call to function with no prototype 調用函數時沒有函數的說明
Cannot modify a const object 不允許修改常量對象
Case outside of switch : 漏掉了case 語句
Case syntax error : Case 語法錯誤
Code has no effect 代碼不可述不可能執行到
Compound statement missing{ 分程序漏掉"{"

Constant expression required 要求常量表達式

Could not find file ''xxx'' 找不到XXX文件

Declaration missing ; 說明缺少";"
Declaration syntax error 說明中出現語法錯誤
Default outside of switch Default 出現在switch語句之外

Do statement must have while : Do-while語句中缺少while部分

Expression syntax error 表達式語法錯誤

File name too long 文件名太長
Function call missing ) 函數調用缺少右括弧

Fuction should return a value 函數必需返回一個值

Illegal character ''x'' 非法字元x

Irrecible expression tree 無法執行的表達式運算

Mismatched number of parameters in definition 定義中參數個數不匹配

No declaration for function ''xxx'' 沒有函數xxx的說明

Not an allowed type 不允許使用的類型
Numeric constant too large 常數數值太大

Parameter ''xxx'' is never used 參數xxx沒有用到
Pointer required on left side of -> : 符號->的左邊必須是指針
Possible use of ''xxx'' before definition 在定義之前就使用了xxx(警告)
Possibly incorrect assignment 賦值可能不正確

Redeclaration of ''xxx'' 重復定義了xxx

Statement missing ; 語句後缺少";"
Type mismatch in parameter xxx 參數xxx類型不匹配

''xxx'' not an argument :xxx 不是參數
''xxx'' not part of structure : xxx不是結構體的一部分
xxx statement missing ( : xxx語句缺少左括弧
xxx statement missing ) : xxx語句缺少右括弧
xxx statement missing ; : xxx缺少分號
xxx'' declared but never used 說明了xxx但沒有使用
xxx'' is assigned a value which is never used 給xxx賦了值但未用過
Zero length structure 結構體的長度為零

有些人稱c語言為中級語言 就是說介於高級語言於低級語言之間
所以它具有高級語言的特性又有低級語言的特性
高級語言的特點簡單來說就是人性化
而低級語言特點就是靈活
靈活就是能編的范圍比較廣
但是沒有高級語言用起來那麼方便

⑻ C語言文件擴展名是什麼

源文件一般為 .c .h文件
動態庫文件 .so
靜態庫文件 .a

在linux下幾乎一切都是文件,擴展名只是用來人為區別類型

⑼ C語言中的源程序文件和目標文件的擴展名分別是

C語言源代碼文件一般擴展名為.c,目標文件擴展名一般為.obj,生成的可執行文件擴展名一般為.exe。

不同平台的C源代碼擴展名都為.c,但目標文件擴展名不同,例如:在Linux平台上,生成的可執行文件一般擴展為.out。

源文件:這是指由源程序和數據構成的文件。通常由終端或輸入設備輸入的源程序和數據所形成的文件都屬於源文件。它通常是由 ASCII 碼或漢字所組成的。

目標文件:這是指把源程序經過相應語言的編譯程序編譯過,但尚未經過鏈接程序鏈接的目標代碼所構成的文件。它屬於二進制文件。

可執行文件:這是指把編譯後所產生的目標代碼再經過鏈接程序鏈接後所形成的文件。

(9)c文件擴展名過濾擴展閱讀:

源文件,目標文件,可執行文件的聯系:

源文件就是用匯編語言或高級語言寫出來的代碼保存為文件,目標文件是指源文件經過編譯程序產生的能被cpu直接識別二進制文件。將目標文件鏈接起來就成了可執行文件。

源代碼與源文件:

源代碼(也稱源程序)是指未編譯的按照一定的程序設計語言規范書寫的文本文件,是一系列人類可讀的計算機語言指令。 在現代程序語言中,源代碼可以是以書籍或者磁帶的形式出現,但最為常用的格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。

計算機源代碼的最終目的是將人類可讀的文本翻譯成為計算機可以執行的二進制指令,這種過程叫做編譯,通過編譯器完成。在大多數情況下,源代碼等於源文件。

參考資料來源:網路-源文件



⑽ C語言文件的編譯與執行的四個階段並分別描述

採納了加我不懂問我</b> 一 C編譯過程概述 目前Linux下最常用的C語言編譯器是GCC(GNU Compiler Collection),它是GNU項目中符合ANSI C標準的編譯系統,能夠編譯用C、C++和Object C等語言編寫的程序.GCC不僅功能非常強大,結構也異常靈活.最值得稱道的一點就是它可以通過不同的前端模塊來支持各種語言,如Java、Fortran、Pascal、Mola-3和Ada等. Linux系統下的gcc(GNU C Compiler)是GNU推出的功能強大、性能優越的多平台編譯器,是GNU的代表作品之一。gcc是可以在多種硬體平台上編譯出可執行程序的超級編譯器,其執行效率與一般的編譯器相比平均效率要高20%~30%。 使用GCC編譯程序時,編譯過程可以被細分為四個階段:
◆ 預處理(Pre-Processing)
◆ 編譯(Compiling)
◆ 匯編(Assembling)
◆ 鏈接(Linking) 二 編譯過程中各種文件介紹 1.以擴展名區分文件類型.c為後綴的文件,C語言源代碼文件;
.a為後綴的文件,是由目標文件構成的檔案庫文件;
.C,.cc或.cxx 為後綴的文件,是C++源代碼文件;
.h為後綴的文件,是程序所包含的頭文件;
.i 為後綴的文件,是已經預處理過的C源代碼文件;
.ii為後綴的文件,是已經預處理過的C++源代碼文件;
.m為後綴的文件,是Objective-C源代碼文件;
.o為後綴的文件,是編譯後的目標文件;
.s為後綴的文件,是匯編語言源代碼文件;
.S為後綴的文件,是經過預編譯的匯編語言源代碼文件。 2.LINUX目標文件描述 LINUX 平台下三種主要的可執行文件格式:a.out(assembler and link editor output 匯編器和鏈接編輯器的輸出)、COFF(Common Object File Format 通用對象文件格式)、ELF(Executable and Linking Format 可執行和鏈接格式)。其中ELF是x86 Linux系統 下的一種常用目標文件(object file)格式,有三種主要類型: (1)適於連接的可重定位文件(relocatable file),可與其它目標文件一起創建可執行文件和共享目標文件。編譯產生的.o文件就屬於這類。
(2)適於執行的可執行文件(executable file),用於提供程序的進程映像,載入到內存執行。這就是編譯、鏈接之後形成的最終文件。
(3)共享目標文件(shared object file),連接器可將它與其它可重定位文件和共享目標文件連接成其它的目標文件,動態連接器又可將它與可執行文件和其它共享目標文件結合起來創建一個進程映像。這就是庫文件,只指動態庫文件。 詳細了解請看本人收藏的《LINUX可執行文件分析》 三 編譯過程詳解 C語言的編譯鏈接過程要把我們編寫的一個c程序(源代碼)轉換成可以在硬體上運行的程序(可執行代碼),需要進行編譯和鏈接。編譯就是把文本形式源代碼翻譯為機器語言形式的目標文件的過程。鏈接是把目標文件、操作系統的啟動代碼和用到的庫文件進行組織形成最終生成可執行代碼的過程。過程圖解如下:
從圖上可以看到,整個代碼的編譯過程分為編譯和鏈接兩個過程,編譯對應圖中的大括弧括起的部分,其餘則為鏈接過程。 1. 編譯過程 編譯過程又可以分成兩個階段:編譯和匯編。 1)編譯 編譯是讀取源程序(字元流),對之進行詞法和語法的分析,將高級語言指令轉換為功能等效的匯編代碼,源文件的編譯過程包含兩個主要階段: 第一個階段是預處理階段,在正式的編譯階段之前進行。預處理階段將根據已放置在文件中的預處理指令來修改源文件的內容。如#include指令就是一個預處理指令,它把頭文件的內容添加到.cpp文件中。這個在編譯之前修改源文件的方式提供了很大的靈活性,以適應不同的計算機和操作系統環境的限制。一個環境需要的代碼跟另一個環境所需的代碼可能有所不同,因為可用的硬體或操作系統是不同的。在許多情況下,可以把用於不同環境的代碼放在同一個文件中,再在預處理階段修改代碼,使之適應當前的環境。主要是以下幾方面的處理: (1)宏定義指令, 如 #define a b
對於這種偽指令,預編譯所要做的是將程序中的所有a用b替換,但作為字元串常量的 a則不被替換。還有 #undef,則將取消對某個宏的定義,使以後該串的出現不再被替換。 (2)條件編譯指令, 如#ifdef,#ifndef,#else,#elif,#endif等。
這些偽指令的引入使得程序員可以通過定義不同的宏來決定編譯程序對哪些代碼進行處理。預編譯程序將根據有關的文件,將那些不必要的代碼過濾掉。
(3)頭文件包含指令, 如#include "FileName"或者#include <FileName>等。 在頭文件中一般用偽指令#define定義了大量的宏(最常見的是字元常量),同時包含有各種外部符號的聲明。採用頭文件的目的主要是為了使某些定義可以供多個不同的C源程序使用。因為在需要用到這些定義的C源程序中,只需加上一條#include語句即可,而不必再在此文件中將這些定義重復一遍。預編譯程序將把頭文件中的定義統統都加入到它所產生的輸出文件中,以供編譯程序對之進行處理。包含到c源程序中的頭文件可以是系統提供的,這些頭文件一般被放在 /usr/include目錄下。在程序中#include它們要使用尖括弧(< >)。另外開發人員也可以定義自己的頭文件,這些文件一般與c源程序放在同一目錄下,此時在#include中要用雙引號("")。
(4)特殊符號,預編譯程序可以識別一些特殊的符號。
例如在源程序中出現的LINE標識將被解釋為當前行號(十進制數),FILE則被解釋為當前被編譯的C源程序的名稱。預編譯程序對於在源程序中出現的這些串將用合適的值進行替換。

預編譯程序所完成的基本上是對源程序的「替代」工作。經過此種替代,生成一個沒有宏定義、沒有條件編譯指令、沒有特殊符號的輸出文件。這個文件的含義同沒有經過預處理的源文件是相同的,但內容有所不同。下一步,此輸出文件將作為編譯程序的輸出而被翻譯成為機器指令。

第二個階段編譯、優化階段,經過預編譯得到的輸出文件中,只有常量;如數字、字元串、變數的定義,以及C語言的關鍵字,如main,if,else,for,while,{,}, +,-,*,\等等。

編譯程序所要作得工作就是通過詞法分析和語法分析,在確認所有的指令都符合語法規則之後,將其翻譯成等價的中間代碼表示或匯編代碼。

優化處理是編譯系統中一項比較艱深的技術。它涉及到的問題不僅同編譯技術本身有關,而且同機器的硬體環境也有很大的關系。優化一部分是對中間代碼的優化。這種優化不依賴於具體的計算機。另一種優化則主要針對目標代碼的生成而進行的。

對於前一種優化,主要的工作是刪除公共表達式、循環優化(代碼外提、強度削弱、變換循環控制條件、已知量的合並等)、復寫傳播,以及無用賦值的刪除,等等。 後一種類型的優化同機器的硬體結構密切相關,最主要的是考慮是如何充分利用機器的各個硬體寄存器存放的有關變數的值,以減少對於內存的訪問次數。另外,如何根據機器硬體執行指令的特點(如流水線、RISC、CISC、VLIW等)而對指令進行一些調整使目標代碼比較短,執行的效率比較高,也是一個重要的研究課題。

2)匯編
匯編實際上指把匯編語言代碼翻譯成目標機器指令的過程。對於被翻譯系統處理的每一個C語言源程序,都將最終經過這一處理而得到相應的目標文件。目標文件中所存放的也就是與源程序等效的目標的機器語言代碼。目標文件由段組成。通常一個目標文件中至少有兩個段:代碼段:該段中所包含的主要是程序的指令。該段一般是可讀和可執行的,但一般卻不可寫。數據段:主要存放程序中要用到的各種全局變數或靜態的數據。一般數據段都是可讀,可寫,可執行的。 2. 鏈接過程 由匯編程序生成的目標文件並不能立即就被執行,其中可能還有許多沒有解決的問題。
例如,某個源文件中的函數可能引用了另一個源文件中定義的某個符號(如變數或者函數調用等);在程序中可能調用了某個庫文件中的函數,等等。所有的這些問題,都需要經鏈接程序的處理方能得以解決。

鏈接程序的主要工作就是將有關的目標文件彼此相連接,也即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的這些目標文件成為一個能夠誒操作系統裝入執行的統一整體。

根據開發人員指定的同庫函數的鏈接方式的不同,鏈接處理可分為兩種: (1)靜態鏈接 在這種鏈接方式下,函數的代碼將從其所在地靜態鏈接庫中被拷貝到最終的可執行程序中。這樣該程序在被執行時這些代碼將被裝入到該進程的虛擬地址空間中。靜態鏈接庫實際上是一個目標文件的集合,其中的每個文件含有庫中的一個或者一組相關函數的代碼。 (2)動態鏈接
在此種方式下,函數的代碼被放到稱作是動態鏈接庫或共享對象的某個目標文件中。鏈接程序此時所作的只是在最終的可執行程序中記錄下共享對象的名字以及其它少量的登記信息。在此可執行文件被執行時,動態鏈接庫的全部內容將被映射到運行時相應進程的虛地址空間。動態鏈接程序將根據可執行程序中記錄的信息找到相應的函數代碼。

對於可執行文件中的函數調用,可分別採用動態鏈接或靜態鏈接的方法。使用動態鏈接能夠使最終的可執行文件比較短小,並且當共享對象被多個進程使用時能節約一些內存,因為在內存中只需要保存一份此共享對象的代碼。但並不是使用動態鏈接就一定比使用靜態鏈接要優越。在某些情況下動態鏈接可能帶來一些性能上損害。四 編譯過程實例描述 linux中使用的gcc編譯器把上述的幾個過程集成,一個命令就能完成編譯的整個過程。為了詳細說明每個步驟,下面我們將分部執行。下圖是gcc代理的編譯過程
常式: 在linux下創建文件hello.c,內容如下,
#include <stdio.h>
int main(void)
{
printf ("Hello,everybody!\n");
return 0;
} ◆ 預處理(Pre-Processing)
使用-E參數可以讓GCC在預處理結束後停止編譯過程,對應的命令是cpp,
# gcc -E hello.c -o hello.i 用編輯器打開hello.i,可以看到stdio.h文件被展開到了hello.i中。 ◆ 編譯(Compiling)
使用-S參數將hello.i編譯為匯編程序,使用的命令是cc -S,
#gcc –S hello.i –o hello.s 用編輯器打開hello.s,顯然已經變成了匯編代碼。 ◆ 匯編(Assembling)
使用-c參數將hello.s編譯為目標文件,對應的命令是as,
#gcc –c hello.s –o hello.o 可以利用工具readelf或者objmp讀出hello.o的信息。 ◆ 鏈接(Linking) 產生可執行文件,利用命令ld
# gcc hello.o -o hello
利用readelf,可以看到hello.o和hello文件的區別。

閱讀全文

與c文件擴展名過濾相關的資料

熱點內容
製冰機前加什麼樣的凈水器 瀏覽:345
超濾膜可以過濾菌絲嗎 瀏覽:24
中速過濾器技術資料 瀏覽:35
一噸污水加多少鐵鹽 瀏覽:601
河北環氧樹脂襯里 瀏覽:105
半透膜滲透壓永動機 瀏覽:396
一級反滲透回收率應該是多少 瀏覽:78
正定新區地下水廠超濾 瀏覽:451
污水管道跨越燃氣管道如何處理 瀏覽:882
地熱過濾網拆除 瀏覽:840
mbr廢水 瀏覽:695
植物細胞的細胞膜是否是半透膜 瀏覽:736
浮雕立體樹脂裝飾畫 瀏覽:867
凈水器制水怎麼關閉一直流水 瀏覽:580
科魯滋空氣濾芯總成怎麼安裝 瀏覽:926
安徽濕固化樹脂廠家 瀏覽:478
飲水機管道怎麼安裝 瀏覽:496
陶式超濾膜有序列號嗎 瀏覽:852
醫院直飲水機漏水怎麼辦 瀏覽:240
污水泵加什麼油加多少合適 瀏覽:816