495个C语言问题经典之"显示程序自身源代码"

745阅读 0评论2012-10-22 momser
分类:


点击(此处)折叠或打开

  1. /*
  2.  ============================================================================
  3.  Name : ma.c
  4.  Author : hl
  5.  Version :
  6.  Copyright : Copyright (c) 2012 Tiros
  7.  Description : Ma in C, Ansi-style
  8.  ============================================================================
  9.  */
  10. /**
  11.  * 自身显示自身C代码 源码 -- 一开始看也是懵、拆呗
  12.  */
  13. #if 0
  14. char*s="char*s=%c%s%c;main(){printf(s,34,s,34);}";
  15. main(){printf(s,34,s,34);}
  16. #endif

  17. #if 0
  18. /// < 拆分一:
  19. char*s="char*s=%s;int main(){printf(s, s);}";
  20. main(){printf(s, s);}
  21.     // 结果: char*s=char*s=%s;int main(){printf(s, s);};int main(){printf(s, s);}
  22.     // 分析:少了""
  23. #endif
  24. /// < 因此我们再增加"的ascii字符就ok了。查查ascii表.. 发现"是34,cool,加之
  25. /// < 补充完整二:
  26. char*s="char*s=%c%s%c;int main(){printf(s, 34, s, 34);}";
  27. main(){printf(s, 34, s, 34);}

  28. /**
  29.  * Conclusion: 就像网友说的,只是你接触的少,用的少,思路少,像我就是一个菜鸟!加油,菜鸟!
  30.  */

上一篇:编写一个随内核加载的简单驱动
下一篇:程序员的7个坏习惯