什么,在您看来是一个有意义的文档?你期望在那里描述什么?
例如,考虑这个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)
你觉得这有意义吗?发布您的好/坏示例供所有人知道(以及一般答案,以便可以接受).
是否可以一次性编译多个构建目标?例如,我想编译一个 .exe 和一个静态库,其中包含除包含 main() 的 .c 文件之外的所有内容
如果这是不可能的,如何管理像这样的多个构建目标?
将数据集作为带有值的数组行,例如:
[“狗”、“猫”、“鸟”]
我想得到一个包含所有与正则表达式不匹配的值的数组,但不愿意使用负捕获组(正则表达式比这更复杂) - 所以如果我的标准是第一个字母必须是大写,输出数组应该是 ["cat"]
可执行文件似乎无法解析链接库中的符号。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) 我在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) 这是一个快速的挑战.取这个字符串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使用令牌解析和前瞻或后面解决这个问题是微不足道的,所以没有点.