मैंने अपने सहकर्मी से सीखा कि एक सी प्रोग्राम को बिना किसी main()
फंक्शन को लिखे और निष्पादित कर सकता है। इसे इस तरह किया जा सकता है:
my_main.c
/* Compile this with gcc -nostartfiles */
#include <stdlib.h>
void _start() {
int ret = my_main();
exit(ret);
}
int my_main() {
puts("This is a program without a main() function!");
return 0;
}
इसे इस कमांड के साथ संकलित करें:
gcc -o my_main my_main.c –nostartfiles
इसे इस कमांड से चलाएं:
./my_main
इस तरह की बात करने की आवश्यकता कब होगी? क्या कोई वास्तविक विश्व परिदृश्य है जहां यह उपयोगी होगा?
_start()
बाहर और अन्य सामानों के कुछ बेहतर बिंदुओं पर चर्चा करता है main()
।
_start
, या इसके अलावा किसी भी प्रविष्टि बिंदु के बारे में कुछ भी नहीं है main
(सिवाय इसके कि प्रविष्टि बिंदु का नाम कार्यान्वयन-परिभाषित है जो फ्रीस्टैंडिंग (एम्बेडेड) कार्यान्वयन के लिए है)।