编写一个程序来打印“ “极客” 使用空的main()函数。不允许在main()中写入任何内容。
null
C语言
- 一种方法是将GCC构造函数属性应用于函数,使其在main()之前执行(请参见 这 详细信息)。
#include <stdio.h>
/* 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中,只需覆盖 _开始() 函数,以便将其用作自定义启动代码。看见 这 文章要了解更多。
#include <stdio.h>
#include <stdlib.h>
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语句,并创建该类的全局对象。创建对象时,调用构造函数并打印“Geeksforgeks”。
#include <iostream>
class
MyClass {
public
:
MyClass()
{
std::cout <<
"GeeksforGeeks"
;
}
} m;
int
main()
{
}
输出:
GeeksforGeeks
- 这个想法是创造 结构 并使用上面讨论的相同逻辑。原因是 结构 和 班 C++中的数据结构完全相同 结构 默认为公共可见性,而 班 默认为私有可见性
#include <iostream>
struct
Mystruct {
Mystruct()
{
std::cout <<
"GeeksforGeeks"
;
}
} obj;
int
main() {}
输出:
GeeksforGeeks
- 通过使用全局变量,我们的想法是初始化 printf() 函数对全局变量的作用,但它只在C++语言中工作,就像C语言一样,我们不能初始化变量或表达式,这样就到全局变量。
#include <cstdio>
int
var =
printf
(
"GeeksforGeeks"
);
int
main()
{
}
输出:
GeeksforGeeks
Java语言
其思想是使用静态块进行打印,实际上,在java中,在main()方法之外声明的任何静态块都是在main方法之前执行的。
class Myjava { static { System.out.println( "GeeksforGeeks" ); } public static void main(String args[]) { } } |
输出:
GeeksforGeeks
本文由 威凯 并通过 Shubham Bansal .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END