c語言中預處理檔案包含include,巨集定義def

2021-03-04 05:35:26 字數 3400 閱讀 6857

1樓:匿名使用者

#include 是用來呼叫包含的標頭檔案的。

#define 是自己定義的一些巨集,例如,常量。

2樓:匿名使用者

#include 是用來包含其他檔案的。

#define 是自己定義的一些巨集,例如,常量。

3樓:匿名使用者

#include 是用來呼叫其他標頭檔案,如:stdio.h math.h。。。。

#define 是定義的一些巨集

c語言中預處理檔案包含(#define),巨集定義(#define)兩個寫法一樣有什麼區別?一定採納

4樓:匿名使用者

預處理包含檔案應該這樣寫#include 《你的包含檔案》;----- 而巨集定義這樣寫:#define 你的定義;希望能幫到你。

c語言中 預處理檔案(#define),巨集定義(#define)兩個寫法一樣有什麼區別?一定採納

5樓:嘟

巨集定義是預處理的

,預處理的不止是巨集定義。包括你包含的標頭檔案,預處理的定義在以後你學到編譯原理這門課的時候會解釋,他是編譯之前做的一件事情。總之,巨集定義跟預處理不是同一概念,只是巨集定義在編譯的過程中是預處理的。

望採納!

6樓:匿名使用者

你寫的兩個不是一樣的嗎

7樓:

沒有區別。一點區別都沒有 。

c語言中預處理中(#define),巨集定義(#define)兩個寫法一樣有什麼區別?一定採納

8樓:匿名使用者

#define就乙個,沒有兩個

9樓:匿名使用者

所謂預處理,是在編譯前處理c程式,包括巨集定義指令#define、#undef;檔案包含指令#include;條件編譯指令#if、#ifndef等。所以你是概念混淆了。

c語言中#define如何拼接兩個巨集定義

10樓:匿名使用者

拼接不了的,但是這樣可以達到你的目的

#define ec20 usart2

#define ec20_rx_buf usrt2_rx_buf

11樓:

#define connect2(x, y) x##y

#define connect1(x,y) connect2 (x, y)

#define rx_buf connect1(rx_buf, ec20)

12樓:街角05號

c語言:預處理是什麼意思?就是看不懂這句話的解釋!越具體越好,也可以通俗一點!

13樓:水晶葡萄

預處理,再編譯前需要做的工作。預處理主要處理兩部分東西,標頭檔案和巨集。

對於標頭檔案,做操作。比如再某個.c中include了乙個標頭檔案,這一行預處理時就會被替換為標頭檔案的內容。

對於巨集,比如你define了乙個巨集。這裡就會把程式裡面所有用到這個巨集的地方替換掉。當然巨集還有其他操作,但是它們都是再預處理階段就被處理了的

14樓:匿名使用者

第十一章 預處理概述

在前面各章中,已多次使用過以「#」號開頭的預處理命令。如包含命令# include,巨集定義命令# define等。在源程式中這些命令都放在函式之外, 而且一般都放在原始檔的前面,它們稱為預處理部分。

  所謂預處理是指在進行編譯的第一遍掃瞄(詞法掃瞄和語法分析)之前所作的工作。預處理是c語言的乙個重要功能, 它由預處理程式負責完成。當對乙個原始檔進行編譯時, 系統將自動引用預處理程式對源程式中的預處理部分作處理, 處理完畢自動進入對源程式的編譯。

  c語言提供了多種預處理功能,如巨集定義、檔案包含、 條件編譯等。合理地使用預處理功能編寫的程式便於閱讀、修改、 移植和除錯,也有利於模組化程式設計。本章介紹常用的幾種預處理功能。

巨集定義在c語言源程式中允許用乙個識別符號來表示乙個字串, 稱為「巨集」。被定義為「巨集」的識別符號稱為「巨集名」。在編譯預處理時,對程式中所有出現的「巨集名」,都用巨集定義中的字串去代換, 這稱為「巨集代換」或「巨集」。

  巨集定義是由源程式中的巨集定義命令完成的。 巨集代換是由預處理程式自動完成的。在c語言中,「巨集」分為有引數和無引數兩種。

下面分別討論這兩種「巨集」的定義和呼叫。 無參巨集定義

無參巨集的巨集名後不帶引數。其定義的一般形式為: #define 識別符號 字串 其中的「#」表示這是一條預處理命令。

凡是以「#」開頭的均為預處理命令。「define」為巨集定義命令。 「識別符號」為所定義的巨集名。

「字串」可以是常數、表示式、格式串等。在前面介紹過的符號常量的定義就是一種無參巨集定義。 此外,常對程式中反覆使用的表示式進行巨集定義。

例如: # define m (y*y+3*y) 定義m表示式(y*y+3*y)。在編寫源程式時,所有的(y*y+3*y)都可由m代替,而對源程式作編譯時,將先由預處理程式進行巨集代換,即用(y*y+3*y)表示式去置換所有的巨集名m,然後再進行編譯。

#define m (y*y+3*y)

main()

上例程式中首先進行巨集定義,定義m表示式(y*y+3*y),在s= 3*m+4*m+5* m中作了巨集呼叫。在預處理時經巨集後該語句變為:s=3*(y*y+3*y)+4(y*y+3*y)+5(y*y+3*y);但要注意的是,在巨集定義中表示式(y*y+3*y)兩邊的括號不能少。

否則會發生錯誤。

當作以下定義後: #difine m y*y+3*y在巨集時將得到下述語句: s=3*y*y+3*y+4*y*y+3*y+5*y*y+3*y;這相當於; 3y

15樓:匿名使用者

提前說明了的叫預處理比如定義乙個變數#define max 1000**中所有的字元 max 就是1000比如#define print printf("ok");**中遇到print字串就是printf函式,輸出ok!預處理就是預先讓編譯系統知道,他的出現會有目的的在變化一不變數時只需要改預處理,所有資料都會改變,程式很容易維護,還有重要的是編譯系統執行預處理其效率高```做事情就是預先準備可能發生將要發生的事情做個總體計畫...

16樓:匿名使用者

baidu.***/view/1334643.htm 先看下前兩個介紹預處理,根據字面意思是預先做的處理在c語言裡包含三個方面1.

巨集定義2.包含檔案3.條件編譯這三個方面在上述網頁中有詳細介紹如有問題,請追問

c語言寫標頭檔案定義巨集的問題,C語言寫標頭檔案定義巨集的問題

ifndef a h define a h endif 就是如果沒有定義a h那麼就定義a h,並執行.這樣就避免了重複include的問題。標頭檔案叫file 那麼一般 ifndef file h 這是c的風格,也可以取一個唯一的其他識別符號 預編譯 內的防止重複編譯就是這樣做的,比如 a.cpp...

C中有巨集定義嗎,在C 語言中怎麼定義類似於C言的巨集定義

public const int m 100 或internal const int m 100 沒有 有 const 變數 即常量 沒有,c 有const 常量或static 靜態變數 c中有巨集定義 c 中用 const 定義常量 請問怎樣在c 中實現類似c 中的巨集定義。不懂勿答!ms的編譯器...

c語言中巨集跟常變數的定義有什麼區別

c當中是沒有常變數的,也就是定義的變數賦值了常數但是仍然可以改變值 c 裡邊才有常變數,定義同時初始化,以後就不能改變值了。c中的巨集定義就是一種替換,上的複製替換,可以這樣理解,define a 12345就是凡是a出現的地方都用12345替換,當然巨集替換就不止數值,還可以到字串 函式表示式上去...