main()之前做点什么

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;

int main() {
cout << "m" << endl;
}

void Main() {
cout << "M" << endl;
}

int a = (Main(), 0);
1
2
3
4
➜  before-main ./1 
M
m
➜ before-main

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;

int main(int argc, char *argv[]) {
cout << argc << endl;
for(int i = 0; i < argc; i++) cout << argv[i] << endl;
}

int argc = 3;
char *argv[] = {(char*)"M", (char*)"MM", (char*)"MMM"};

void Main() {
main(argc, argv);
}

int a = (Main(), 0);
1
2
3
4
5
6
7
8
➜  before-main ./2
3
M
MM
MMM
1
./2
➜ before-main