函数名和第一个花括号之间的变量声明 [英] Variable declaration between function name and first curly brace
本文介绍了函数名和第一个花括号之间的变量声明的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我阅读用C code混淆的文章,其中一个例子声明的主要功能为:
I am reading an article about code obfuscation in C, and one of the examples declares the main function as:
int main(c,v) char *v; int c;{...}
我从来没有见过这样的事情, v 和 C 是全局变量?
完整的例子是这样的:
#include <stdio.h>
#define THIS printf(
#define IS "%s\n"
#define OBFUSCATION ,v);
int main(c, v) char *v; int c; {
int a = 0; char f[32];
switch (c) {
case 0:
THIS IS OBFUSCATION
break;
case 34123:
for (a = 0; a < 13; a++) { f[a] = v[a*2+1];};
main(0,f);
break;
default:
main(34123,"@h3eglhl1o. >w%o#rtlwdl!S\0m");
break;
}
}
感谢在前进。
文章: http://www.brandonparker.net/$c$c_obf.php
推荐答案
这是老式的函数定义
void foo(a,b)
int a;
float b;
{
// body
}
是一样的。
void foo(int a, float b)
{
// body
}
您的情况是一样的 INT主(INT C,字符* V){...}
但是,这并不正确。
Your case is same as int main(int c,char *v){...}
But it's not correct.
正确的语法是: INT主(INT C,焦炭** V){...}
或者 INT主(INT C,字符* V []){...}
编辑:记得在的main()
, v
应的char **
不是的char *
为你写的。
EDIT : Remember in main()
, v
should be char**
not the char*
as you have written.
我觉得这是 K&安培; - [R
C形式。
这篇关于函数名和第一个花括号之间的变量声明的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文