假设我有一个带有规则的makefile
%.o: %.c
gcc -Wall -Iinclude ...
Run Code Online (Sandbox Code Playgroud)
我想要在头文件更改时重建*.o.无论何时/include更改任何头文件,都必须重建dir中的所有对象,而不是计算出依赖项列表.
我想不出一个改变规则以适应这个的好方法,我愿意接受建议.如果标题列表不必硬编码,则奖励积分
在Perl中,我的大多数print陈述都采用了这种形式
print "hello." . "\n";
Run Code Online (Sandbox Code Playgroud)
有没有一种很好的方法可以避免让所有讨厌的人"躺着"?
我知道我可以创建一个新的功能,例如myprint自动附加\n,但如果我可以覆盖现有的那么会很好print.
我经常发现在调试程序时,在代码块中插入一个return语句很方便(虽然可以说是不好的做法).我可能会在Java中尝试这样的东西....
class Test {
public static void main(String args[]) {
System.out.println("hello world");
return;
System.out.println("i think this line might cause a problem");
}
}
Run Code Online (Sandbox Code Playgroud)
当然,这会产生编译器错误.
Test.java:7:无法访问的语句
我可以理解为什么警告可能是合理的,因为使用未使用的代码是不好的做法.但我不明白为什么这需要产生错误.
这只是Java试图成为一个保姆,还是有充分的理由使这成为编译器错误?
我想将一个函数指针设置为一个类的成员,该类是指向同一个类中另一个函数的指针.我这样做的原因很复杂.
在这个例子中,我希望输出为"1"
class A {
public:
int f();
int (*x)();
}
int A::f() {
return 1;
}
int main() {
A a;
a.x = a.f;
printf("%d\n",a.x())
}
Run Code Online (Sandbox Code Playgroud)
但这在编译时失败了.为什么?
在为Java代码构建一套单元测试时,是否存在将测试代码放在与源代码相关的位置的约定?
例如,如果我有一个/java包含大量.java源文件的目录,那么将测试用例放在/java自身或使用类似的东西更好/java/test.
如果后者是首选,当类的private /protected成员在包外不可用时,如何测试代码的内部?
Python中有没有办法unittest设置运行测试用例的顺序?
在我目前的TestCase课程中,一些测试用例具有副作用,为其他测试用例设置正常运行的条件.现在我意识到这样做的正确方法是使用setUp()所有设置实现的东西,但我想实现一个设计,其中每个连续的测试建立稍微更多的状态,下一个可以使用.我发现这更优雅.
class MyTest(TestCase):
def test_setup(self):
#do something
def test_thing(self)
#do something that depends on test_setup()
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望测试按照它们在课堂中出现的顺序运行.它们似乎按字母顺序运行.
有没有一种简单的方法可以从C/C++源文件中删除注释而无需进行任何预处理.(也就是说,我认为你可以使用gcc -E,但这会扩展宏.)我只想要删除注释的源代码,不应该改变任何其他内容.
编辑:
对现有工具的偏好.我不想用正则表达式自己写这个,我预见代码中有太多的惊喜.
我理解是什么print,但语言元素的"类型"是什么?我认为这是一个功能,但为什么会失败?
>>> print print
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
不是print功能吗?不应该打印这样的东西吗?
>>> print print
<function print at ...>
Run Code Online (Sandbox Code Playgroud) java for-each循环是否保证如果在列表上调用元素将按顺序显示?在我的测试中似乎确实如此,但我似乎无法在任何文档中明确提到这一点
List<Integer> myList;// [1,2,3,4]
for (Integer i : myList) {
System.out.println(i.intValue());
}
#output
1,2,3,4
Run Code Online (Sandbox Code Playgroud) 基于其缓慢的声誉,我总是避免使用Java反射.我在当前项目的设计中达到了一个重点,能够使用它会使我的代码更具可读性和优雅性,所以我决定试一试.
我对这种差异感到惊讶,有时候我注意到运行时间差了近100倍.即使在这个简单的例子中它只是实例化一个空类,它也令人难以置信.
class B {
}
public class Test {
public static long timeDiff(long old) {
return System.currentTimeMillis() - old;
}
public static void main(String args[]) throws Exception {
long numTrials = (long) Math.pow(10, 7);
long millis;
millis = System.currentTimeMillis();
for (int i=0; i<numTrials; i++) {
new B();
}
System.out.println("Normal instaniation took: "
+ timeDiff(millis) + "ms");
millis = System.currentTimeMillis();
Class<B> c = B.class;
for (int i=0; i<numTrials; i++) {
c.newInstance();
}
System.out.println("Reflecting instantiation took:"
+ timeDiff(millis) + "ms");
} …Run Code Online (Sandbox Code Playgroud) java ×4
c++ ×2
python ×2
unit-testing ×2
c ×1
comments ×1
dependencies ×1
header-files ×1
loops ×1
makefile ×1
newline ×1
oop ×1
performance ×1
perl ×1
printing ×1
reflection ×1
syntax ×1