


What is the difference between declaration and definition of C user identifiers?
In C language, the declaration of an identifier declares its existence in the compiler, while the definition gives it a specific value based on the declaration. Declarations can be repeated, while definitions can only occur once and must be in appropriate .c files, usually used in header files, and definitions in .c files.
In C language, the declaration and definition of identifiers are to put it bluntly to tell the compiler the difference between "I know there is such a thing" and "what is this thing". These two sound like each other, but they are actually far apart. If you can't figure this out, no matter how fancy your code is, it is easy to cause trouble.
You think, you have to tell the compiler what tools you plan to use, right? That's what the statement means. It tells the compiler: "Hey, I plan to use a variable called myVariable
, it is an integer." But it doesn't say what the specific value of myVariable
is. It's like you booked a table but haven't sat down yet.
What is the definition? Only by defining things truly “create”. It not only tells the compiler that myVariable
is an integer, but also assigns a value to it, such as myVariable = 10;
. This is equivalent to not only booking a table, but also sitting down, and this table is yours now.
Therefore, only the declaration is of type and the definition is of value. Declaration can be made multiple times, and definition can only be made once. You can declare the same variable in multiple places and tell the compiler "I want to use it here too", but you can only define it in one place and assign it the initial value.
Look at the code and you will understand:
<code class="c">// 声明:告诉编译器有个叫myVar的整型变量,但还没赋值extern int myVar; // 定义:创建myVar这个变量,并赋值为5 int myVar = 5; void myFunction() { // 声明:在这个函数里,我也要使用myVar extern int myVar; // 使用myVar myVar = 10; } int main() { // 使用myVar printf("myVar = %d\n", myVar); myFunction(); printf("myVar = %d\n", myVar); return 0; }</code>
In this code, extern int myVar;
is a declaration, which tells the compiler that the variable myVar
is defined elsewhere, and I want to use it here. And int myVar = 5;
is the definition, it creates myVar
and assigns values. You can declare the same global variable in multiple .c
files, but you can only define it in one .c
file. Otherwise, the compiler will go crazy because it doesn't know what myVar
is.
Let me remind you again: header files ( .h
files) are usually used to declare, not define. Definitions are usually placed in .c
files. If you define global variables in a header file and multiple files contain this header file, it will lead to repeated definition errors and the compiler will report errors without mercy. This is a common pitfall! Remember, declarations can be made multiple times, definitions can only be made once, and they should be placed in a suitable .c
file. This is the essence of C language and it is also a place where many beginners are prone to make mistakes. You must understand thoroughly in order to write robust and efficient C code.
The above is the detailed content of What is the difference between declaration and definition of C user identifiers?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

WorldCoin (WLD) stands out in the cryptocurrency market with its unique biometric verification and privacy protection mechanisms, attracting the attention of many investors. WLD has performed outstandingly among altcoins with its innovative technologies, especially in combination with OpenAI artificial intelligence technology. But how will the digital assets behave in the next few years? Let's predict the future price of WLD together. The 2025 WLD price forecast is expected to achieve significant growth in WLD in 2025. Market analysis shows that the average WLD price may reach $1.31, with a maximum of $1.36. However, in a bear market, the price may fall to around $0.55. This growth expectation is mainly due to WorldCoin2.

Exchanges that support cross-chain transactions: 1. Binance, 2. Uniswap, 3. SushiSwap, 4. Curve Finance, 5. Thorchain, 6. 1inch Exchange, 7. DLN Trade, these platforms support multi-chain asset transactions through various technologies.

Aavenomics is a proposal to modify the AAVE protocol token and introduce token repos, which has implemented a quorum for AAVEDAO. Marc Zeller, founder of the AAVE Project Chain (ACI), announced this on X, noting that it marks a new era for the agreement. Marc Zeller, founder of the AAVE Chain Initiative (ACI), announced on X that the Aavenomics proposal includes modifying the AAVE protocol token and introducing token repos, has achieved a quorum for AAVEDAO. According to Zeller, this marks a new era for the agreement. AaveDao members voted overwhelmingly to support the proposal, which was 100 per week on Wednesday

In the bustling world of cryptocurrencies, new opportunities always emerge. At present, KernelDAO (KERNEL) airdrop activity is attracting much attention and attracting the attention of many investors. So, what is the origin of this project? What benefits can BNB Holder get from it? Don't worry, the following will reveal it one by one for you.

The steps to draw a Bitcoin structure analysis chart include: 1. Determine the purpose and audience of the drawing, 2. Select the right tool, 3. Design the framework and fill in the core components, 4. Refer to the existing template. Complete steps ensure that the chart is accurate and easy to understand.

Suggestions for choosing a cryptocurrency exchange: 1. For liquidity requirements, priority is Binance, Gate.io or OKX, because of its order depth and strong volatility resistance. 2. Compliance and security, Coinbase, Kraken and Gemini have strict regulatory endorsement. 3. Innovative functions, KuCoin's soft staking and Bybit's derivative design are suitable for advanced users.

The platforms that have outstanding performance in leveraged trading, security and user experience in 2025 are: 1. OKX, suitable for high-frequency traders, providing up to 100 times leverage; 2. Binance, suitable for multi-currency traders around the world, providing 125 times high leverage; 3. Gate.io, suitable for professional derivatives players, providing 100 times leverage; 4. Bitget, suitable for novices and social traders, providing up to 100 times leverage; 5. Kraken, suitable for steady investors, providing 5 times leverage; 6. Bybit, suitable for altcoin explorers, providing 20 times leverage; 7. KuCoin, suitable for low-cost traders, providing 10 times leverage; 8. Bitfinex, suitable for senior play

Cryptocurrency data platforms suitable for beginners include CoinMarketCap and non-small trumpet. 1. CoinMarketCap provides global real-time price, market value, and trading volume rankings for novice and basic analysis needs. 2. The non-small quotation provides a Chinese-friendly interface, suitable for Chinese users to quickly screen low-risk potential projects.
