小编Kon*_*ads的帖子

如何写出有意义的文档字符串?

什么,在您看来是一个有意义的文档?你期望在那里描述什么?

例如,考虑这个Python类__init__:

def __init__(self, name, value, displayName=None, matchingRule="strict"):
    """
    name - field name
    value - field value
    displayName - nice display name, if empty will be set to field name
    matchingRule - I have no idea what this does, set to strict by default
    """
Run Code Online (Sandbox Code Playgroud)

你觉得这有意义吗?发布您的好/坏示例供所有人知道(以及一般答案,以便可以接受).

python comments docstring

25
推荐指数
4
解决办法
2万
查看次数

Visual Studio C/C++ 中的多个构建目标

是否可以一次性编译多个构建目标?例如,我想编译一个 .exe 和一个静态库,其中包含除包含 main() 的 .c 文件之外的所有内容

如果这是不可能的,如何管理像这样的多个构建目标?

c c++ visual-studio-2010 visual-studio

7
推荐指数
1
解决办法
3792
查看次数

jq 负选择数组元素

将数据集作为带有值的数组行,例如:

[“狗”、“猫”、“鸟”]

我想得到一个包含所有与正则表达式不匹配的值的数组,但不愿意使用负捕获组(正则表达式比这更复杂) - 所以如果我的标准是第一个字母必须是大写,输出数组应该是 ["cat"]

arrays json regex-negation jq

5
推荐指数
1
解决办法
2432
查看次数

符号查找错误未定义符号,但所有符号似乎都存在

可执行文件似乎无法解析链接库中的符号。LD_DEBUG=libs 的相关输出表明加载了正确的库:

6557:     /usr/lib/libcharon.so.0: error: symbol lookup error: undefined symbol: auth_class_names (fatal)
                /usr/libexec/ipsec/charon: symbol lookup error: /usr/lib/libcharon.so.0: undefined symbol: auth_class_names
Run Code Online (Sandbox Code Playgroud)

nm -D 显示符号 auth_class_names 已定义:

nm -D /usr/lib/libcharon.so.0|grep auth_class_names
        U auth_class_names
Run Code Online (Sandbox Code Playgroud)

编辑:添加 ldd 的输出:

/usr/lib# ldd /usr/lib/libstrongswan.so
    libpthread.so.0 => /lib/arm-linux-gnueabi/libpthread.so.0 (0xb6ecd000)
    libdl.so.2 => /lib/arm-linux-gnueabi/libdl.so.2 (0xb6ec2000)
    librt.so.1 => /lib/arm-linux-gnueabi/librt.so.1 (0xb6eb3000)
    libc.so.6 => /lib/arm-linux-gnueabi/libc.so.6 (0xb6d78000)
    /lib/ld-linux.so.3 (0xb6f25000)
/usr/lib# ldd /usr/lib/libcharon.so
    libm.so.6 => /lib/arm-linux-gnueabi/libm.so.6 (0xb6ea6000)
    libpthread.so.0 => /lib/arm-linux-gnueabi/libpthread.so.0 (0xb6e86000)
    libdl.so.2 => /lib/arm-linux-gnueabi/libdl.so.2 (0xb6e7b000)
    libcap.so.2 => /lib/arm-linux-gnueabi/libcap.so.2 (0xb6e70000)
    libc.so.6 => /lib/arm-linux-gnueabi/libc.so.6 (0xb6d35000)
    /lib/ld-linux.so.3 (0xb6fa6000) …
Run Code Online (Sandbox Code Playgroud)

linux elf ld

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

释放后修改的自由堆块

我在data =(LPBYTE)malloc(MAX_VALUE_DATA);上收到臭名昭着的"释放后修改的免费堆块"消息.这个stackoverflow线程表明这是因为我正在释放错误的东西.事实上,如果底部附近的自由(数据)被取消注释,则此错误将返回,如果被注释,则会消失.我如何解决它错了?

// Enumerate the key values. 

        if (cValues) 
        {
            printf( "\nNumber of values: %d\n", cValues);
            LPBYTE data;            
            DWORD size;
            data=(LPBYTE) malloc(MAX_VALUE_DATA);
            messageProvider mp={(TCHAR*) currentRoot,NULL,NULL,NULL};
            BOOL anyGoodValues=FALSE;
            for (i=0, retCode=ERROR_SUCCESS; i<cValues; i++) 
            { 
                cchValue = MAX_VALUE_NAME; 
                achValue[0] = '\0'; 
                ZeroMemory(data,MAX_VALUE_DATA);
                //data=(LPBYTE) malloc(MAX_VALUE_DATA);
                size=MAX_VALUE_DATA;
                retCode = RegEnumValue(hKey, i, 
                    achValue, 
                    &cchValue, 
                    NULL, 
                    NULL,
                    data,
                    &size);

                if (retCode == ERROR_SUCCESS ) 
                { 
                    _tprintf(TEXT("(%d) '%s'\n"), i+1, achValue); 
                    BOOL valFound=FALSE;
                    if (_tcscmp(achValue,_T("ParameterMessageFile")) == 0 ){

                        mp.ParameterMessageFile=(TCHAR *)data;
                        anyGoodValues=TRUE;
                        valFound=TRUE;
                    }
                    if …
Run Code Online (Sandbox Code Playgroud)

c

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

使用regexp拆分类似'foo = bar#baz = qo \#ox#al\= pha = beta的字符串

这是一个快速的挑战.取这个字符串foo=bar#baz=qo\#ox#al\=pha=beta,其中包含由#彼此分隔的键值对[pair]和=作为键和值之间的分隔符,并使用正则表达式(perl,python,classic等)将其拆分为其组件.如果在键或值中遇到字符#和=,则它们以\为前缀.因此,结果应该是键/值表:

KEY    | VALUE
foo    |  bar
baz    | qo#ox
al=pha | beta
Run Code Online (Sandbox Code Playgroud)

如果你的正则表达式(分裂或匹配)只是将它分成#字符,你得到100分.如果你设法分成一个转到键和值= =字符,则收集额外的50分.

PS使用令牌解析和前瞻或后面解决这个问题是微不足道的,所以没有点.

regex

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