编写一个程序,使用空的main()函数打印“ GeeksforGeeks” 。您不可以在main()中编写任何内容。
C语言
- 一种方法是将GCC构造函数属性应用于函数,以便它在main()之前执行(有关详细信息,请参见此内容)。
#include
/* Apply the constructor attribute to myStartupFun() so that it is executed before main() */ void myStartupFun(void) __attribute__((constructor)); /* implementation of myStartupFun */ void myStartupFun(void) { printf("GeeksforGeeks"); } int main() { } 输出:
GeeksforGeeks
- 在linux中,只需覆盖_start()函数的默认定义,即可将其用作自定义启动代码。请参阅本文以了解更多信息。
#include
#include int main(void) { } // _start() function void _start(void) { printf("GeeeksforGeeks"); // Call main() function int var = main(); exit(var); } 现在通过以下命令进行编译
gcc -nostartfiles -o file file.c
输出:
GeeksforGeeks
C++语言
- 这个想法是创建一个类,在构造函数中有一个cout语句,并创建该类的全局对象。创建对象时,将调用构造函数并打印“ GeeksforGeeks”。
#include
class MyClass { public: MyClass() { std::cout << "GeeksforGeeks"; } } m; int main() { } 输出:
GeeksforGeeks
- 这个想法是创建结构并使用上面讨论过的相同逻辑。原因是C++中的struct和class完全相同的数据结构,除了struct默认为公共可见性,而class默认为私有可见性
#include
struct Mystruct { Mystruct() { std::cout << "GeeksforGeeks"; } } obj; int main() {} 输出:
GeeksforGeeks
- 通过使用全局变量,想法是将printf()函数初始化为全局变量,但是它只能在C++语言中工作,因为在C语言中,我们无法将这样的变量或表达式初始化为全局变量。
#include
int var = printf("GeeksforGeeks"); int main() { } 输出:
GeeksforGeeks
Java语言
这个想法是使用静态块进行打印,实际上在Javamain()方法外部声明的所有静态块都在main方法之前执行。
class Myjava {
static
{
System.out.println("GeeksforGeeks");
}
public static void main(String args[])
{
}
}
输出:
GeeksforGeeks
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。