小编Tre*_*ith的帖子

联盟 - 无用的时代错误或有用的老派伎俩?

我最近遇到了一本很棒的数据结构书," 数据结构使用C "(c)1991,当地图书馆书籍2美元.正如本书的标题所暗示的,本书涵盖了使用C编程语言的数据结构.

我知道这本书已经过时,但可能会包含许多我在其他地方都不会遇到的高级C主题.

确实在5分钟内我找到了一些我不知道的关于C的内容.我遇到了一个关于union关键字的部分,我意识到我从未使用它,也没见过任何代码.我很高兴能够学到一些有趣的东西并迅速买下这本书.

对于那些不了解联盟是什么的人,本书使用一个好的比喻来解释:

要完全理解联合的概念,有必要检查它的实现.结构可以被视为存储器区域的路线图.它定义了如何解释内存.联合为同一内存区域提供了几种不同的路线图,程序员有责任确定当前使用的路线图.实际上,编译器会分配足够的存储空间来包含union的最大成员.然而,路线图确定了如何解释存储.

我可以很容易地想出我会使用联盟的人为的情况或黑客.(但我对人为的情况或黑客不感兴趣...)

您是否曾使用或看过使用Union解决问题的实现**比不使用Union更优雅**?

如果你快速解释为什么使用union比不使用union更好/更容易,可以增加额外的奖励.

c c++ unions data-structures

20
推荐指数
6
解决办法
3707
查看次数

EventHandlers和SinkEvents是否正在执行相同的功能工作?

我正在使用GWT.我开始通过添加EventHandlers向我的小部件添加事件.

事件处理程序示例代码

    widget.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            // do something
        }
    });
Run Code Online (Sandbox Code Playgroud)

然后我发现还有另一种使用sinkEvents()处理事件的方法.

Sink事件示例代码(来自本网站):

 {
 ...
 sinkEvents(Event.ONMOUSEDOWN | Event.ONMOUSEUP | Event.ONMOUSEOVER |Event.ONMOUSEOUT)
 ...
 }

 public void onBrowserEvent(Event event) {
     Element td = getEventTargetCell(event);
     if (td == null) return;
     Element tr = DOM.getParent(td);
     switch (DOM.eventGetType(event)) {
         case Event.ONMOUSEDOWN: {
                 // do something
                 break;
         }
         case Event.ONMOUSEUP: {
                 // do something
                 break;
         }
         case Event.ONMOUSEOVER: {
                 // do something
                 break;
         }
         case Event.ONMOUSEOUT: {
                 // do …
Run Code Online (Sandbox Code Playgroud)

gwt

16
推荐指数
1
解决办法
4929
查看次数

使用Spyder IDE,你如何从"goto定义"返回?

问题描述:

我喜欢用键盘跳转代码,但我在Spyder IDE中遇到了可用性墙.我可以使用"goto definition"功能跳转到某个函数的定义但是我不能回到我的光标所在的位置(因此可能需要一段时间来手动查找我以前的位置,因为可能有很多行码).

所以例如X=5在同一个文件中有一个常量,当我使用"goto definition"时,我可以看到那个常量是什么但是没有办法回去.或者另一个例子是来自另一个文件的函数,其中"goto definition"将我带到另一个文件......但是现在我找不到我正在使用的其他文件(因为可能有很多文件打开).

在30多岁的时候,vi您可以转到定义并使用ctrl-]和返回ctrl-t.在14岁以上的Eclipse中,相当于"goto定义"将近似于F3定义.然后返回将是alt- left.

运行Spyder 2.2.4版.

题:

使用Spyder IDE,您可以从"goto definition"返回吗?如果可以的话,你如何从"goto定义"返回?

我尝试过的:

我有一个设置为"上一个光标位置"的键盘快捷键,Alt Left但是当我按下键时"前一个光标位置"没有做任何事情.(默认的键盘快捷键ctrl-alt-left与用于切换工作区的Cinnamon-dekstop-manager键盘快捷键冲突,所以我不得不重新映射上面提到的键盘快捷键.)

python ide keyboard-shortcuts spyder

16
推荐指数
1
解决办法
2556
查看次数

Qt问题:信号和插槽如何工作?

信号和插槽如何在高级抽象中工作?

如何在高级抽象中实现信号和槽?

c++ qt

15
推荐指数
3
解决办法
2万
查看次数

git是否存储文件的读,写,执行权限?

我想用git只读一些文件.但我找不到任何关于这样做的好文档.

git是否存储文件的读,写,执行权限?

git permissions file-permissions

15
推荐指数
2
解决办法
3990
查看次数

Pthread - time.h :: sleep()和pthread.h :: pthread_yield()之间有什么区别?

我花了很长时间寻找有关time.h :: sleep()和pthread.h :: pthread_yield()之间差异的信息,但无法找到任何可靠的参考资料,所以我发布了这个问题.

time.h :: sleep()和pthread.h :: pthread_yield()之间有什么区别?

更新:

我问的原因是因为我使用sleep()来睡眠()每个单独的线程......当我有8个线程和4个线程时,我的应用程序开始出现问题.当我上网查看sleep()是否只影响每个线程时,我找不到任何好的引用来说明Sleep()是否影响整个进程,或者sleep()只影响单个线程.

c multithreading sleep yield pthreads

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

在C++/Qt中定义纯虚拟信号是否有效?

我正在制作一个抽象基类,并且认为我可能 想要一个纯粹的虚拟信号.但是当我编译时,我得到了我已经定义的纯虚拟信号的警告:

../FILE1.h:27: Warning: Signals cannot be declared virtual
../FILE1.h:28: Warning: Signals cannot be declared virtual
Run Code Online (Sandbox Code Playgroud)

在C++/Qt中定义纯虚拟信号是否有效?定义虚拟信号有效吗?

Qt的信号和插槽文档页面说明你可以定义虚拟插槽,但不会谈论信号.我似乎无法找到关于纯虚拟信号的好信息.

c++ qt abstract-class signals-slots

14
推荐指数
2
解决办法
8033
查看次数

我怎么能做不区分大小写的git diffing同时也做`git diff --color`?

是否可以做一个不区分大小写的git diff同时也做git diff --color-words?或者我在做git diff --color-words什么时需要使用外部差异程序?

(注意:如果你想要的只是git diff case不敏感请转到这个问题 如何在Git中执行不区分大小写的diff)

git git-diff case-insensitive

13
推荐指数
1
解决办法
4275
查看次数

Spyder IDE:如何配置默认的行尾字符?

我使用Spyder IDE开发代码,IDE当前默认的行尾字符集为CRLF.我想使用'\n'代替,因为我现有的所有源代码都使用'\n',因此我不希望有一堆使用不同行尾字符的新文件.

有没有办法在Spyder IDE中指定默认的行尾字符?如果有,怎么样?

python scipy spyder

13
推荐指数
1
解决办法
2678
查看次数

如何在unittest测试用例中退出脚本

下面是一个示例脚本,它在第一个测试用例中检查前置条件,如果不满足前置条件,我的目的是中止脚本.

#!/usr/bin/python
import unittest
import sys

class TestMyScript(unittest.TestCase):
    def test_000_prerequisite(self):
        a = 0
        if not a:
            sys.exit()
        return

    def test_001_test1(self):
        print "Inside test 1"
        return

    def test_002_test2(self):
        print "Inside test 2"
        return

if __name__ == "__main__":
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

但是,sys.exit()仅退出套件的单个测试用例.它不会退出整个脚本.

我理解unittest对每个测试用例进行单独处理,这就是为什么测试用例处理由任何测试用例引起的任何异常并进入下一个测试用例的原因.

但是我想要脚本自杀,我该怎么做?

这是我的脚本的输出:

./temp.py
EInside test 1
.Inside test 2
.
======================================================================
ERROR: test_000_prerequisite (__main__.TestMyScript)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./temp.py", line 9, in test_000_prerequisite
    sys.exit()
SystemExit

----------------------------------------------------------------------
Ran 3 tests in 0.000s

FAILED (errors=1)
Run Code Online (Sandbox Code Playgroud)

我的猜测是,如果测试用例返回一些信号,我必须乱用TestRunner并终止脚本.但不确定如何真正实现它.

解:

如果测试用例发现错误,我在Stop …

python unit-testing python-unittest

13
推荐指数
1
解决办法
2685
查看次数