以前听说main()不能递归?于是在CentOS7上使用gcc-8.1.0测试了一下,发现可行:
#include <stdio.h> int x = 5; int main(int argc, char**kw) { if (x < 0) return 0; printf("[%d]:%s ", x, kw[x]); x--; return main(x, kw); }
Output:
$ ./test [5]:DBUS_STARTER_ADDRESS=unix:abstract=/tmp/dbus-WWhe2bAkPe,guid=043099e6ad5b1776b14ce3fe5b2867a3 [4]:HOSTNAME=localhost.localdomain [3]:XDG_SESSION_ID=1 [2]:XDG_VTNR=1 [1]:(null) [0]:./test