如何在不使用任何函数的情况下在C中编写"Hello world"?

kap*_*dit -4 c assembly

我找到了在quora上做到这一点的方法,但我无法理解.

You can achieve this using opcodes.....

const int main[] = {  -443987883, 440, 113408, -1922629632,  4149, 899584, 84869120, 15544,  266023168, 1818576901, 1461743468, 1684828783,  -1017312735};
Now follow below steps....
Save that in hello.c
then gcc -o hello hello.c
then ./hello
Hola..... Hello World!
Run Code Online (Sandbox Code Playgroud)

操作码将根据其架构特定于特定硬件和控制器.如果我理解正确,那么对于不同的硬件和平台,操作码将是不同的.所以这不是一般的解决方案.但是我试图在IDEone上编译它并且它给出了运行时错误.有没有通用的解决方案?

关于SE的类似问题

dor*_*ron 5

在C中,该main函数是程序的入口点.在程序二进制文件中,函数编译到的机器代码将放在.text二进制文件的部分以及main函数在符号表中的位置.

在上面的代码中,我们创建了一个具有相同main符号名称的常量数组.由于数组是常量,因此它也将放在.text二进制的部分中.由于该.text部分中的任何代码都是可执行的,因此没有什么可以阻止主数组中的操作码被执行.