相关疑难解决方法(0)

混淆的C代码竞赛2006.请解释sykes2.c

这个C程序如何工作?

main(_){_^448&&main(-~_);putchar(--_%64?32|-~7[__TIME__-_/8%8][">'txiZ^(~z?"-48]>>";;;====~$::199"[_*2&8|_/64]/(_&2?1:8)%8&1:10);}
Run Code Online (Sandbox Code Playgroud)

它按原样进行编译(测试gcc 4.6.3).它打印编译时的时间.在我的系统上:

    !!  !!!!!!              !!  !!!!!!              !!  !!!!!! 
    !!  !!  !!              !!      !!              !!  !!  !! 
    !!  !!  !!              !!      !!              !!  !!  !! 
    !!  !!!!!!    !!        !!      !!    !!        !!  !!!!!! 
    !!      !!              !!      !!              !!  !!  !! 
    !!      !!              !!      !!              !!  !!  !! 
    !!  !!!!!!              !!      !!              !!  !!!!!!
Run Code Online (Sandbox Code Playgroud)

资料来源:sykes2 - 一行中的一个时钟,sykes2作者提示

一些提示:默认情况下没有编译警告.编译时-Wall,会发出以下警告:

sykes2.c:1:1: warning: return type defaults to ‘int’ [-Wreturn-type]
sykes2.c: In function ‘main’:
sykes2.c:1:14: warning: value …
Run Code Online (Sandbox Code Playgroud)

c obfuscation deobfuscation

963
推荐指数
4
解决办法
8万
查看次数

在Java中,变量名称可以与类名相同

在Java中,我可以声明一个变量,其名称与其类名完全相同.我认为这是一个如此令人困惑和奇怪的设计.

所以我在下面的代码片段中有一个问题:编译器如何区分ClassName,它引用了变量名或名?

在运行结果中,编译器引用ClassName为变量名称.

class ClassName{}

public class Test {
    public static void main(String[] args){
        ClassName ClassName = new ClassName();
        System.out.println(ClassName); //ClassName@18fb53f6
    }
}
Run Code Online (Sandbox Code Playgroud)

java compiler-construction class

14
推荐指数
1
解决办法
1万
查看次数

Java中_()的重要性是某种构造函数

我是Java新手,开始学习和探索语言.谁能解释一下构造函数中_()的重要性.那叫做构造函数吗?

public class UserRequestCache {

    private final static ThreadLocal <UserRequest> t = new ThreadLocal <UserRequest>();

    private static UserRequestCache instance = new UserRequestCache();

    public static UserRequestCache _() {
        return instance;
    }

    private UserRequestCache() {
    }

    public void checkPoint() {
        if (logDebug()) {
            if (getUserRequest() != null) {
                logDebug(getUserRequest().toString());
            }
        }
    }

    public UserRequest getCache() {
        // checkPoint();
        return getUserRequest();
    }

    private UserRequest getUserRequest() {
        return t.get();
    }

    public void setCache(UserRequest value) {
        t.set(value);
    }
}
Run Code Online (Sandbox Code Playgroud)

java

3
推荐指数
1
解决办法
57
查看次数