Structs ගැන ,
Structs , C language එකේ විශේෂ ස්ථානයක් ගන්නවා , එයට හේතුව , අපි දන්නවා අපිට programme එක තුල අවශ්ය දෙයක් computer memory එකේ තබා ගැනීමට අවශ්ය වූ විට සිදු කරන්නේ , variable එකක් create කරන එක. උදාහරණයක් විදියට ගත්තොත් ..
int x=20 , y=30;
ආකාරයට .
struct තුලින් කරන්නෙත් මේ හා සමාන ක්රියාවලියක් (ඒ කියන්නේ memory එකට
acces කිරීමක්) . හැබැයි මෙහි වෙනස් කමක් දක්නට පුළුවන්, ඒ .. අපි variable
එකක් create කරනකොට බාවිතා කරනවා data types කියලා ජාතියක් . int ,char
,short ,float ,long , double කියලා Data-types set එකක් අපි දැනටමත්
දන්නවා , මේවට අපි කියනව pre-define data-types කියල, මොකද මේවා නිකන්
standards වගේ එදා ඉදලා තිබ්බ දේවල් .
හැබැයි structs නිර්මාණය කරලා තියෙන්නේ , මේ Pre-define data types සමග බැදුණු varible කිහිපයක් එක් කරගෙන අපිට නව data type එකක් නිර්ම්මාණය කර ගතහැකි අකාරයටයි. අර සෙට් එක bundle කරලා එකක් නිර්මාණය කර ගැනීමක් තමයි සිද්ද වෙන්නේ , අන්න ඒ හේතුව නිසා අපි structs කියන්නේ User-define data type එකක් විදියට සලකනවා .
අපි උදාහරණයක් අරන් බලමු ,
#include <stdio.h>
int main(){
char *name; // pointer variable එකක් use කල එකට confused වෙන්න එපා , ඒ කොටසෙන් කියනවා
char *district;
int student_count;
}
👆 ඉහත දක්වල තියෙන විදියට තමයි අපි normally code කරන්නේ 👆
හරි දැන් බලමු , අපි structs බාවිත කරමින් මේ සිදු කරන්නේ කොහොමද කියල ..
#include <stdio.h>
struct schools{
char* name;
char* district;
int student_count;
};
int main(){
}
මේක අපි ලියද්දි Global scope එකෙන්
ලියන්නේ ( main එක උඩින් ලියන්නේ) , එම නිසා globaly available වෙනවා
නිකන්ම.
ඒවගේම තමයි මම කලින් කිව්වා වගේ ඔක්කොම bundle කරලා එකකට ගෙනාවට පස්සේ
අලුතින් මේ නිර්මාණය වුනේ data type එකක් ( එය User-define data type එකක්
කියලත් හදුන්වනවා ), ඉහත උදාහරණයට අනුව , මේකේ Data-type එක වෙන්නේ struct
school කියන එක
🤠 // Data-type එක මොකක්ද කියලා ඇහුවොත් නිකන් school නෙවේ , struct school . 🤠
හරි දැන් Data-type එක නිර්මාණය කර ගෙන අවසානයි. දැන් තියෙන්නේ අපිට මේකෙන් ප්රයෝජනයක් ගන්න , අපිට මෙය main එකට call කර ගන්න වෙනවා , එහෙමත් නැත්නම් අපි මේ අවස්තාවට කියනවා struct එකක් declare කරනව කියලා , නැතිනම් initialize කරනවා යනුවෙනුත් හදුන්වන්න පුළුවන්. struct එක declare කරන්නේ මෙහෙමයි ,
#include <stdio.h>
struct schools{
char* name;
char* district;
int student_count;
};
int main(){
struct schools f_school;
return 0;
}
මේ ආකාරයට declare කර ගත්ත variable එක තවම initialize කළා කියන තැනට ඇවිල්ල නැහැ , එකට හේතුව අපි කිසිම Data එකක් දීල නැති එක ,
මෙන්න මේ ආකාරයට data අපි create කල variable එකට දෙමු … ( variable එක : f_school , data type එක : struct schools )
#include <stdio.h>
struct schools{
char* name;
char* district;
int student_count;
};
int main(){
struct schools f_school;
f_school.name = "St.thomas College";
f_school.district = "Matara";
f_school.student_count = 6500;
printf("%s \n",f_school.name);
printf("%s \n",f_school.district);
printf("%d \n",f_school.student_count);
return 0;
}
output එක :
- St.thomas College
- Matara
- 6500
ඒ වගේම අපිට පුළුවන් ඉහත අකාරයට initialize කර ගතපු data , පහත ඇති ආකාරයටත් වෙනස් කර ගැනීමට හැක
#include <stdio.h>
struct schools{
char* name;
char* district;
int student_count;
};
int main(){
struct schools f_school = {
.name = "St.thomas College",
.district = "Matara",
.student_count = 6500
};
printf("%s \n",f_school.name);
printf("%s \n",f_school.district);
printf("%d \n",f_school.student_count);
return 0;
}
අදට එපමණයි , ජයවේවා !🤍