āϤā§āĻŽāϰāĻž āĻ
āύā§āĻā§āĻ āĻšā§āϤ⧠āĻāĻžāĻŦāϤā§āĻā§, "variable declare āĻāϰ define â āĻāĻ āĻĻā§āĻāĻž āĻāĻŋ āĻāĻ āĻāĻŋāύāĻŋāϏ āύāĻžāĻāĻŋ āĻāϞāĻžāĻĻāĻž āĻāĻŋāĻā§?" đ¤
āĻāĻ āϞā§āϏāύ⧠āĻāĻŽāϰāĻž āĻāĻāĻĻāĻŽ crystal clear āĻāϰāĻŦā§ āĻāĻ confusion! â
đ§ 006. Variable Declaration vs Definition in CÂļ
āĻāĻŽāϰāĻž āĻāĻāĻžāύ⧠āĻŦā§āĻāĻŦā§ āĻĻā§āĻāĻāĻž āĻāĻŋāύāĻŋāϏ:
- Declaration (āĻā§āώāĻŖāĻž) đŖ
- Definition (āϏāĻāĻā§āĻāĻž) đ§ą
đ āϏāĻšāĻ āĻāĻžāώāĻžā§ āĻĒāĻžāϰā§āĻĨāĻā§āϝÂļ
| đ āϧāϰ⧠āϤā§āĻŽāĻŋ āĻāĻžāĻāĻā§ āĻŦāϞāϞāĻž:
âāĻāĻžāĻ, āĻāĻŽāĻŋ āĻāĻāĻāĻž āĻāĻžā§āĻāĻž āϰāĻžāĻāϤā§āĻāĻŋ, āϏāĻžāĻŽāύ⧠āĻāĻŋā§ā§ āĻāĻāĻžāύ⧠āĻāĻŋāĻā§ āϰāĻžāĻāĻŦā§āĨ¤â
āĻāĻāĻž āĻšāϞ⧠Declaration
| đ āĻāϰ āϝāĻāύ āϤā§āĻŽāĻŋ āĻŦāϞāϞāĻž:
âāĻāĻžāĻ, āĻāĻ āĻāĻžā§āĻāĻžā§ āĻāĻŽāĻŋ āĻāĻāύāĻ āĻāĻ āĻāĻŋāύāĻŋāϏāĻāĻž āϰāĻžāĻāϤā§āĻāĻŋāĨ¤â
āĻāĻāĻž āĻšāϞ⧠Definition
đ ī¸ In C Programming TermsÂļ
â Declaration āĻŽāĻžāύā§:Âļ
āĻļā§āϧ⧠variable-āĻāĻž āĻāĻā§ āĻŦāϞ⧠āĻāĻžāύāĻžāύā§, āĻāĻŋāύā§āϤ⧠āĻā§āύ value āĻĻā§ā§āĻž āĻšā§ āύāĻžāĨ¤
- āĻāĻāĻžāύā§
externkeyword use āĻāϰāĻž āĻšāĻāĻā§ āĻāĻžāϰāĻŖ āϤā§āĻŽāĻŋ āĻļā§āϧ⧠āĻŦāϞāϤā§āĻā§ āϝ⧠variable āĻāĻž exists, value āĻĻāĻžāĻāύāĻŋāĨ¤ - āĻāĻāĻž useful āϝāĻāύ variable āĻ āύā§āϝ file-āĻ define āĻāϰāĻž āĻšā§ (multi-file projects).
â Definition āĻŽāĻžāύā§:Âļ
Variable-āĻāĻž declare āĻāϰāĻž āĻāĻŦāĻ āĻāĻāĻ āϏāĻžāĻĨā§ memory allocate āĻāϰāĻž āĻšā§āĨ¤
Value āύāĻž āĻĻāĻŋāϞā§āĻ, memory reserve āĻšā§ā§ āϝāĻžā§āĨ¤
āĻāĻāĻžāύ⧠memory allocate āĻšā§ā§ āĻā§āĻā§, āĻāϰ roll āĻāϰ āĻā§āώā§āϤā§āϰ⧠value āĻ set āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤
âī¸ Table: Declaration vs DefinitionÂļ
| Feature | Declaration | Definition |
|---|---|---|
| Purpose | āĻŦāϞ⧠āĻĻā§ā§ āϝ⧠variable āĻāĻā§ | variable āĻŦāĻžāύāĻžā§ āĻāĻŦāĻ memory āϰāĻŋāĻāĻžāϰā§āĻ āĻāϰ⧠|
| Memory Allocation | â āύāĻž | â āĻšā§āϝāĻžāĻ |
| Example | extern int age; |
int age; āĻŦāĻž int age = 25; |
| Initialization | â āύāĻž | â āϏāĻŽā§āĻāĻŦ (āĻāĻžāĻāϞā§āĻ value āĻĻāĻŋāϤ⧠āĻĒāĻžāϰāĻŋ) |
â ī¸ Warning! Variable Declare āĻāϰāĻž āĻŽāĻžāύā§āĻ memory āĻĒāĻžāĻā§āĻž āύāĻž đŦÂļ
â āĻļā§āϧ⧠āĻŦāϞāϞāĻžāĻŽ āϝ⧠number āύāĻžāĻŽā§ āĻāĻŋāĻā§ āĻāĻāĻāĻž āĻāĻā§āĨ¤ āĻāĻŋāύā§āϤ⧠āĻāĻāĻž āĻāĻāύ⧠āĻŦāĻžāύāĻžāύ⧠āĻšā§āύāĻŋ â
āĻ
āύā§āϝ āĻā§āύ āĻāĻžā§āĻāĻžā§ āĻāĻāĻžāϰ definition āĻĨāĻžāĻāĻž āϞāĻžāĻāĻŦā§:
đ§Ē Example: Declaration vs Definition (2 files)Âļ
đ main.cÂļ
#include <stdio.h>
extern int age; // Declaration only
int main() {
printf("Age: %d\n", age); // Use external variable
return 0;
}
đ data.cÂļ
â Now compile both files together:
đ¤ Output:
đĒ Quick Recap (Bangla Summary)Âļ
| āĻŦāĻŋāώ⧠| āĻŦā§āϝāĻžāĻā§āϝāĻž |
|---|---|
| Declaration | Variable āĻāĻž āĻāĻā§ āĻāĻāĻž āĻŦāϞāϤā§āĻāĻŋ, āĻāĻŋāύā§āϤ⧠value āĻŦāĻž memory āύāĻžāĻ |
| Definition | Variable declare āĻāϰāϞāĻžāĻŽ āĻāĻŦāĻ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ āĻŦāĻžāύāĻŋā§ā§āĻ āĻĢā§āϞāϞāĻžāĻŽ |
| extern | āĻā§āĻŦāϞ declaration āĻŦā§āĻāĻžāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšā§ |
| Memory | Declaration-āĻ āύāĻžāĻ, Definition-āĻ āĻāĻā§ |
| Real use case | āĻŦā§ āĻŦā§ project āĻŦāĻž multi-file project-āĻ Declaration āĻĻāϰāĻāĻžāϰ |
đ§âđĢ Practical Tip:Âļ
āϤā§āĻŽāĻŋ āϝāĻĻāĻŋ āĻāĻāύ āĻļā§āϧ⧠āĻāĻ āĻĢāĻžāĻāϞ⧠āĻāĻžāĻ āĻāϰā§, āϤāĻžāĻšāϞ⧠Declaration āύāĻŋā§ā§ āĻŽāĻžāĻĨāĻž āĻāĻžāĻŽāĻžāύā§āϰ āĻĻāϰāĻāĻžāϰ āύāĻžāĻ â āϏāĻŦāĻ Definition āĻĻāĻŋā§ā§ āĻļā§āϰ⧠āĻāϰā§: