যে কেউ শুরু থেকে শেষ পর্যন্ত একটি সাধারণ উদাহরণ দিয়ে সিটিতে একটি শিরোলেখ ফাইলটি কীভাবে ব্যাখ্যা করবেন তা ব্যাখ্যা করতে পারেন।
যে কেউ শুরু থেকে শেষ পর্যন্ত একটি সাধারণ উদাহরণ দিয়ে সিটিতে একটি শিরোলেখ ফাইলটি কীভাবে ব্যাখ্যা করবেন তা ব্যাখ্যা করতে পারেন।
উত্তর:
foo.h
#ifndef FOO_H_ /* Include guard */
#define FOO_H_
int foo(int x); /* An example function declaration */
#endif // FOO_H_
foo.c
#include "foo.h" /* Include the header (not strictly necessary here) */
int foo(int x) /* Function definition */
{
return x + 5;
}
main.c
#include <stdio.h>
#include "foo.h" /* Include the header here, to obtain the function declaration */
int main(void)
{
int y = foo(3); /* Use the function here */
printf("%d\n", y);
return 0;
}
জিসিসি ব্যবহার করে সংকলন করা
gcc -o my_app main.c foo.c
#ifndef MY_HEADER_H
# define MY_HEADER_H
//put your function headers here
#endif
MY_HEADER_H
ডাবল-অন্তর্ভুক্তি প্রহরী হিসাবে কাজ করে।
ফাংশন ঘোষণার জন্য আপনাকে কেবল স্বাক্ষরটি নির্দিষ্ট করতে হবে, অর্থাত্ প্যারামিটারের নাম ছাড়াই:
int foo(char*);
আপনি যদি সত্যিই চান, আপনি প্যারামিটারের শনাক্তকারীকেও অন্তর্ভুক্ত করতে পারেন তবে এটি প্রয়োজনীয় নয় কারণ শনাক্তকারী কেবল কোনও ফাংশনের শরীরে (বাস্তবায়ন) ব্যবহৃত হত, যা শিরোনাম (প্যারামিটার স্বাক্ষর) এর ক্ষেত্রে অনুপস্থিত।
এটি ফাংশনটি ঘোষণা করে foo
যা একটি গ্রহণ করে char*
এবং একটি প্রদান করে int
।
আপনার উত্স ফাইলে, আপনার এইগুলি হবে:
#include "my_header.h"
int foo(char* name) {
//do stuff
return 0;
}
extern
ভেরিয়েবলের ঘোষণা সংগ্রহ এবং separate তিহাসিকভাবে একটি শিরোনাম বলা হ'ল separateতিহাসিকভাবে একটি পৃথক ফাইলের ফাংশন , যা #include
প্রতিটি উত্স ফাইলের সামনের অংশে অন্তর্ভুক্ত থাকে standard উদাহরণস্বরূপ, স্ট্যান্ডার্ড লাইব্রেরির ফাংশনগুলি যেমন শিরোনামে ঘোষিত হয় <stdio.h>
""
myfile.h
#ifndef _myfile_h
#define _myfile_h
void function();
#endif
myfile.c
#include "myfile.h"
void function() {
}
void function();
যেমন একটি ঘোষণা যেমন কলগুলি প্রতিরোধ করে না function(42);
। ব্যবহার করুন void
মধ্যে ঘোষণা মতvoid function(void);
শিরোনাম ফাইলগুলিতে আপনি .c বা .cpp / .cxx ফাইলে সংজ্ঞায়িত ফাংশনগুলির জন্য প্রোটোটাইপগুলি থাকে (আপনি সি বা সি ++ ব্যবহার করছেন তা নির্ভর করে)। আপনি আপনার .h কোডের চারপাশে # ifndef / # সংজ্ঞায়িত করতে চান যাতে আপনি যদি একই প্রোগ্রাম .h এর আপনার প্রোগ্রামের বিভিন্ন অংশে দু'বার অন্তর্ভুক্ত করেন তবে প্রোটোটাইপগুলি কেবল একবার অন্তর্ভুক্ত করা হবে।
client.h
#ifndef CLIENT_H
#define CLIENT_H
short socketConnect(char *host,unsigned short port,char *sendbuf,char *recievebuf, long rbufsize);
#endif /** CLIENT_H */
তারপরে আপনি .c ফাইলটিতে .h প্রয়োগ করতে পারেন:
client.c
#include "client.h"
short socketConnect(char *host,unsigned short port,char *sendbuf,char *recievebuf, long rbufsize) {
short ret = -1;
//some implementation here
return ret;
}