小编Nik*_*s R的帖子

使用数组,结构或类有速度差异吗?

我需要根据变量anmount数据进行计算,数据中的每个项目包含3个值.我可以使用数组,结构来表示其中一个项目.

速度有什么不同,或者它们的行为方式是否相同?

// #1: Only arrays
typedef int triple[3];

// #2: Using a struct
struct triple {
    int a;
    int b;
    int c;
};

// #3: Using a class
class triple {
public:
    int a;
    int b;
    int c;
};
Run Code Online (Sandbox Code Playgroud)

c++ performance

2
推荐指数
1
解决办法
717
查看次数

PHP模板方法<?= $ var?>?

男人,我可以发誓我在某个地方看到它,缩短<?php echo $var ?>构造的有用语法,我认为它是<?=$var?>但它不起作用.我现在搜索了大约半个小时但是找不到再次告诉我的网站,我无法找出正确的语法.

我是幻觉还是真的有这样的语法?

<div style="background-color:<?=$backgroundColorFromPhp?>">
    Hello <?=$name?>!
</div>
Run Code Online (Sandbox Code Playgroud)

php syntax templates

2
推荐指数
1
解决办法
131
查看次数

打印\ 78在控制台中发出嘟嘟声

为什么下面的代码让我的机器发出嘟嘟声?

print '\78'
Run Code Online (Sandbox Code Playgroud)

我在交互式解释器中测试了它并在命令行中运行了一个脚本.我也在嵌入式环境中对它进行了测试,并没有在那里调用蜂鸣声.

python windows

2
推荐指数
1
解决办法
403
查看次数

使用预处理器在C中进行模板化

我想知道为什么以前从未见过以下用C实现模板的方法。我的想法是使预处理器进入模板工作。

container.h

#ifndef TEMPLATE_TYPE
    #error "missing decalaration TEMPLATE_TYPE"
#endif

#define _CONCAT(a, b) a##b
#define _EVALUATOR(a, b) _CONCAT(a, b)
#define MAKE_NAME(a, b) _EVALUATOR(a, b)

typedef struct {
    TEMPLATE_TYPE   data;
} MAKE_NAME(Container_, TEMPLATE_TYPE);
Run Code Online (Sandbox Code Playgroud)

main.c

#define TEMPLATE_TYPE int
#include "container.h"

int main() {
    Container_int c;
    c.data = 99923;
}
Run Code Online (Sandbox Code Playgroud)

那是什么情况

  1. 这只是被认为是“不良风格”
  2. 很明显,没有人会写一篇关于它的文章
  3. 有很多文章,只是谷歌人!

当您不打算回答#3时,我希望对这种技术发表评论。

c templates c-preprocessor

2
推荐指数
1
解决办法
2595
查看次数

glClearColor(0,0,0,0)是透明的,而不是黑色的

我第一次尝试使用OpenGL.我在线查看一些代码然后尝试编写自己的代码,但我总是只有一个空的(透明)窗口.(我用GLUT打开窗户).

我以为我做错了,所以我将代码从这里复制到我的C源代码,我的窗口仍然是透明的.此外,glClearColor()alpha参数似乎没有任何影响.相反,alpha值似乎红色,绿色蓝色参数决定.

glClearColor(0, 0, 0, 0)
glClearColor(0, 0, 0, 1)
在此输入图像描述

glClearColor(1, 0, 0, 0)
glClearColor(1, 0, 0, 1)
在此输入图像描述

glClearColor(1, 1, 0, 0)
glClearColor(1, 1, 0, 1)
在此输入图像描述

glClearColor(1, 0, 0, 0)
glClearColor(1, 0, 0, 1)
在此输入图像描述

阿尔法参数不会改变结果.

我使用Ubuntu 12.04 LTS,libgl1-mesa-dev.

这是一个错误还是我做错了什么?

c linux opengl ubuntu freeglut

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

constness和指针指针

我对const关键字非常困惑.我有一个函数接受一个字符串数组作为输入参数和一个接受可变数量的参数的函数.

void dtree_joinpaths(char* output_buffer, int count, ...);
void dtree_joinpaths_a(char* output_buffer, int count, const char** paths);
Run Code Online (Sandbox Code Playgroud)

dtree_joinpathsdtree_joinpaths_a在从参数列表构建了一个字符串数组后,在内部调用.

void dtree_joinpaths(char* output_buffer, int count, ...) {
    int i;
    va_list arg_list;
    va_start(arg_list, count);
    char** paths = malloc(sizeof(char*) * count);
    for (i=0; i < count; i++) {
        paths[i] = va_arg(arg_list, char*);
    }
    va_end(arg_list);
    dtree_joinpaths_a(output_buffer, count, paths);
}
Run Code Online (Sandbox Code Playgroud)

gcc编译器给我以下错误消息:

src/dtree_path.c: In function 'dtree_joinpaths':
src/dtree_path.c:65: warning: passing argument 3 of 'dtree_joinpaths_a' from incompatible pointer type
Run Code Online (Sandbox Code Playgroud)

当我改为char** paths = malloc(count);时 …

c pointers const

2
推荐指数
1
解决办法
513
查看次数

多处理=多个进程在运行?

我对多处理感到有些困惑.我是一名3年的Python程序员,但从来没有真正需要并行执行任务(不仅仅是异步).但我所知道或者想知道的是,当multiprocessing在Python中使用模块实现"真正的并行性"时,python.exe会产生新的进程!

Cinema 4D这样的3D软件使用所有可用CPU的功能来渲染3D场景.但我Cinema 4D.exe在任务管理器中看不到多个进程.

  1. 我是否正确使用上述语句,在使用multiprocessing模块时会产生多个Python进程?
  2. 如果是这样,为什么会这样,C++应用程序如何在没有多个进程的情况下使用所有CPU?

c++ python windows parallel-processing multiprocessing

2
推荐指数
1
解决办法
1171
查看次数

PHP的等价于Python的repr()

我正在创建一个简单的数组包装类,并希望它的__toString()方法被格式化为Python列表,例如:["foo", "bar", 6, 21.00002351].将每个元素转换为字符串是不够的,因为字符串对象实际上在列表表示中被引用.

repr()PHP中是否有等价物,如果没有,PHP实现会是什么样子?

php python repr

2
推荐指数
1
解决办法
2816
查看次数

无法使Python正则表达式反向引用工作

我想匹配Python文件的文档字符串.例如.

r""" Hello this is Foo
     """
Run Code Online (Sandbox Code Playgroud)

使用只"""应该足够开始.

>>> data = 'r""" Hello this is Foo\n     """'
>>> def display(m):
...     if not m:
...             return None
...     else:
...             return '<Match: %r, groups=%r>' % (m.group(), m.groups())
...
>>> import re
>>> print display(re.match('r?"""(.*?)"""', data, re.S))
<Match: 'r""" Hello this is Foo\n     """', groups=(' Hello this is Foo\n     ',)>
>>> print display(re.match('r?(""")(.*?)\1', data, re.S))
None
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释为什么第一个表达式匹配而另一个不匹配?

python regex backreference

2
推荐指数
1
解决办法
143
查看次数

密钥是线程ID时,Python字典是否是线程安全的?

使用当前线程的线程ID只读取或写入时,Python字典线程是否安全?喜欢

import thread
import threading

class Thread(threading.Thread):

    def __init__(self, data):
        super(Thread, self).__init__()
        self.data = data

    def run(self):
        data = self.data[thread.get_ident()]
        # ...
Run Code Online (Sandbox Code Playgroud)

python multithreading dictionary critical-section

2
推荐指数
1
解决办法
1036
查看次数