在查看Java源代码时,我发现了一些不寻常的文件,大多与java.nio包中的java.nio相关,这些文件有非常混乱的源代码,并被标记为This file was mechanically generated: Do not edit!。
这些文件还包含很大一部分空行(有些甚至在javadocs (!!?)中间),可能是为了防止行号的更改。我还看到了一些java反编译程序,比如,它们可以选择保留行号,但我对此表示怀疑,因为在最终的赞扬之前放置空行不会改变任何变化。
下面是一些这些文件(我无法在线找到到它们的任何链接,也没有对它们进行压缩,因为我不想破坏任何版权,但是您可以在src.zip安装
我正在阅读JMH示例,现在我正在阅读关于的部分。下面是他们所说的话:
因为我们只知道在编译期间的类型层次结构,所以只有在同一个编译会话中才有可能。也就是说,在JMH编译之后扩展基准类的子类混合不会产生任何效果。
我还没有想到编译的这个方面,所以这一点在我看来并不十分清楚。不过,我们可以使用。示例:
@Benchmark
public abstract class MyBenchmark{
public void mb(){
doSome();
}
public abstract doSome();
}
我认为在编译这个类时,JHM使用注释处理器
这是关于MISRA C++ 2008指南中的MISRA规则16-0-2的。
Macros shall only be #define'd or #undef'd in the global namespace.
我理解这条规则,但我的多空间misra检查工具抱怨说,下面包括在文件开始时声明为不兼容的保护。我想,如果这个文件本身包含在另一个名称空间中,就会发生这种情况,但我的头文件却不是这样。
代码中的其他错误会导致这个问题吗?
#ifndef FOO_H
#define FOO_H
... code etc ...
#endif
注: Misra准则中引用的示例是
#ifn
GCC似乎总是用空格扩展源代码中的制表符。它保留表达式中的空间。标准是怎么说的?
例如,c在本例中将包含什么(<TAB>表示源代码文件中的litteral \t字符)。
#define X(a) #a
const char* c = X(<TAB>a<TAB>c<TAB>);
// c == "a c" ? (looks like what gcc does)
// c == "a\tc" ?
我对Java还不熟悉,因此问题就来了。我试图在不使用第三个临时变量的情况下交换两个数字。代码相当简单。
public static void swapInPlace(int a, int b){
a = a + b;
b = a - b;
a = a - b;
}
public static void main(String[] args) {
// write your code here
int a = 12;
int b = 7;
swapInPlace(a, b);
我有一个相当大的C和C++代码(大约200kloc),它大量使用了可怕的宏:
/* ... */
#define PRIVATE static
#define BEGIN {
#define END }
/* ... */
#define WHILE(e) while (e) {
#define DO /* yep, it's empty */
#define ENDWHILE }
/* and it goes on and on, for every keyword of the language */
事情是这
我正在将C代码块转换为Java,我遇到了一些我不太理解的语法。第一个函数使用#define创建函数。我个人从未见过#define来创建函数。我也在这篇文章中发现这真的是一个macro。下面,您将看到我试图用Java解释这段代码的内容。下面是C代码:
#define mat_elem(a, y, x, n) (a + ((y) * (n) + (x)))
然后我在Java中将其转换为:
public double mat_elem(double a, int y, int x, int n){
return (a + ((y) * (n) + (x)));
}
现在真正的问题是,这段代码也
我在数据流中得到了这个错误:
Processing stuck in step s07 for at least 05m00s without outputting or completing in state finish at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.jav