6个变态的C语言Hello World程序

 更新时间:2016年05月16日 22:12:14   投稿:mdxy-dxy  
这篇文章主要介绍了6个变态的C语言Hello World程序,需要的朋友可以参考下

下面的六个程序片段主要完成这些事情:

输出Hello, World
混乱C语言的源代码
下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。

hello1.c

  #define _________ }
  #define ________ putchar
  #define _______ main
  #define _(a) ________(a);
  #define ______ _______(){
  #define __ ______ _(0x48)_(0x65)_(0x6C)_(0x6C)
  #define ___ _(0x6F)_(0x2C)_(0x20)_(0x77)_(0x6F)
  #define ____ _(0x72)_(0x6C)_(0x64)_(0x21)
  #define _____ __ ___ ____ _________
  #include<stdio.h>
  _____

hello2.c

  #include<stdio.h>
  main(){
   int x=0,y[14],*z=&y;*(z++)=0x48;*(z++)=y[x++]+0x1D;
   *(z++)=y[x++]+0x07;*(z++)=y[x++]+0x00;*(z++)=y[x++]+0x03;
   *(z++)=y[x++]-0x43;*(z++)=y[x++]-0x0C;*(z++)=y[x++]+0x57;
   *(z++)=y[x++]-0x08;*(z++)=y[x++]+0x03;*(z++)=y[x++]-0x06;
   *(z++)=y[x++]-0x08;*(z++)=y[x++]-0x43;*(z++)=y[x]-0x21;
   x=*(--z);while(y[x]!=NULL)putchar(y[x++]);
  }

hello3.c

  #include<stdio.h>
  #define __(a) goto a;
  #define ___(a) putchar(a);
  #define _(a,b) ___(a) __(b);
  main()
  { _:__(t)a:_('r',g)b:_('$',p)
   c:_('l',f)d:_(' ',s)e:_('a',s)
   f:_('o',q)g:_('l',h)h:_('d',n)
   i:_('e',w)j:_('e',x)k:_('\n',z)
   l:_('H',l)m:_('X',i)n:_('!',k)
   o:_('z',q)p:_('q',b)q:_(',',d)
   r:_('i',l)s:_('w',v)t:_('H',j)
   u:_('a',a)v:_('o',a)w:_(')',k)
   x:_('l',c)y:_('\t',g)z:___(0x0)}

hello4.c

  int n[]={0x48,
  0x65,0x6C,0x6C,
  0x6F,0x2C,0x20,
  0x77,0x6F,0x72,
  0x6C,0x64,0x21,
  0x0A,0x00},*m=n;
  main(n){putchar
  (*m)!='\0'?main
  (m++):exit(n++);}

hello5.c

  main(){int i,n[]={(((1<<1)<<(1<<1)<<(1<<
  1)<<(1<<(1>>1)))+((1<<1)<<(1<<1))), (((1
  <<1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<<(
  1<<1)<<(1<<1))+((1<<1)<<(1<<(1>>1)))+ (1
  <<(1>>1))),(((1<<1)<<(1<<1)<<(1<<1)<< (1
  <<1))-((1<<1)<<(1<<1)<<(1<<(1>>1)))- ((1
  <<1)<<(1<<(1>>1)))),(((1<<1)<<(1<<1)<<(1
  <<1)<<(1<<1))-((1<<1)<<(1<<1)<<(1<<(1>>1
  )))-((1<<1)<<(1<<(1>>1)))),(((1<<1)<< (1
  <<1)<<(1<<1)<<(1<<1))-((1<<1)<<(1<<1)<<(
  1<<(1>>1)))-(1<<(1>>1))),(((1<<1)<<(1<<1
  )<<(1<<1))+((1<<1)<<(1<<1)<<(1<<(1>>1)))
  -((1<<1)<<(1<<(1>>1)))),((1<<1)<< (1<<1)
  <<(1<<1)),(((1<<1)<<(1<<1)<<(1<<1)<<(1<<
  1))-((1<<1)<<(1<<1))-(1<<(1>>1))),(((1<<
  1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<< (1
  <<1)<<(1<<(1>>1)))-(1<<(1>>1))), (((1<<1
  )<<(1<<1)<<(1<<1)<<(1<<1))- ((1<<1)<< (1
  <<1)<<(1<<(1>>1)))+(1<<1)), (((1<<1)<< (
  1<<1)<<(1<<1)<< (1<<1))-((1<<1)<< (1<<1)
  <<(1<<(1>>1)))-((1<<1) <<(1<< (1>>1)))),
  (((1<<1)<< (1<<1)<<(1<<1)<< (1<<1))- ((1
  <<1)<<(1<<1)<<(1<<1))+((1<<1)<< (1<<(1>>
  1)))), (((1<<1)<<(1<<1) <<(1<<1))+(1<<(1
  >>1))),(((1<<1)<<(1<<1))+((1<<1)<< (1<<(
  1>>1))) + (1<< (1>>1)))}; for(i=(1>>1);i
  <(((1<<1) <<(1<<1))+((1 <<1)<< (1<<(1>>1
  ))) + (1<<1)); i++) printf("%c",n[i]); }

hello6.cpp

下面的程序只能由C++的编译器编译(比如:g++)

  #include <stdio.h>
  #define _(_) putchar(_);
  int main(void){int i = 0;_(
  ++++++++++++++++++++++++++++
  ++++++++++++++++++++++++++++
  ++++++++++++++++++++++++++++
  ++++++++++++++++++++++++++++
  ++++++++++++++++++++++++++++
  ++++i)_(++++++++++++++++++++
  ++++++++++++++++++++++++++++
  ++++++++++i)_(++++++++++++++
  i)_(--++i)_(++++++i)_(------
  ----------------------------
  ----------------------------
  ----------------------------
  ----------------------------
  ----------------i)_(--------
  ----------------i)_(++++++++
  ++++++++++++++++++++++++++++
  ++++++++++++++++++++++++++++
  ++++++++++++++++++++++++++++
  ++++++++++++++++++++++++++++
  ++++++++++++++++++++++++++++
  ++++++++++++++++++++++++++i)
  _(----------------i)_(++++++
  i)_(------------i)_(--------
  --------i)_(----------------
  ----------------------------
  ----------------------------
  ----------------------------
  ----------------------------
  ------i)_(------------------
  ----------------------------
  i)return i;}

(全文完)

相关文章

  • 关于c++ 智能指针及 循环引用的问题

    关于c++ 智能指针及 循环引用的问题

    下面小编就为大家带来一篇关于c++ 智能指针及 循环引用的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • C++ 纯虚函数详解

    C++ 纯虚函数详解

    本文主要介绍了C++ 纯虚函数详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • C语言实现栈的示例详解

    C语言实现栈的示例详解

    栈是一种特殊的线性表,只允许从一端进出数据,称为后进先出,先进后出。本文主要为大家介绍了C语言实现栈的示例代码,感兴趣的可以了解一下
    2022-06-06
  • 深入理解堆排序及其分析

    深入理解堆排序及其分析

    本篇文章是对堆排进行了详细的分析以及介绍,需要的朋友参考下
    2013-05-05
  • 使用C++一步步实现俄罗斯方块

    使用C++一步步实现俄罗斯方块

    本文给大家分享的是作者在使用C++制作俄罗斯方块的时候的思路分析以及开发准备和实验原理,都是些基础的知识储备,希望大家能够喜欢,具体的代码我们下一节再分享给大家
    2017-12-12
  • C语言深入探究自定义类型之结构体与枚举及联合

    C语言深入探究自定义类型之结构体与枚举及联合

    今天我们来学习一下自定义类型,自定义类型包括结构体、枚举、联合体,小编觉得挺不错的,现在就分享给大家,也给大家做个参考
    2022-05-05
  • C语言中堆空间的生成与释放详解

    C语言中堆空间的生成与释放详解

    以下是对C语言中堆空间的生成与释放进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • 探讨register关键字在c语言和c++中的差异

    探讨register关键字在c语言和c++中的差异

    建议不要用register关键字定义全局变量,因为全局变量的生命周期是从执行程序开始,一直到程序结束才会终止,而register变量可能会存放在cpu的寄存器中,如果在程序的整个生命周期内都占用着寄存器的话,这是个相当不好的举措
    2013-10-10
  • C++实现猜数游戏

    C++实现猜数游戏

    这篇文章主要为大家详细介绍了C++实现猜数游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • 一篇文章带你入门C++的异常处理

    一篇文章带你入门C++的异常处理

    C++ 提供了异常机制,让我们能够捕获运行时错误,本文就详细的介绍了C++异常处理入门,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论