小编Tom*_*ner的帖子

无论父宽度如何,都将div放在一起

我想把div放在一起.我不知道div的数量,因为这是动态创建和更改的.我想有一个父div,如果有很多子div(并且它们的宽度大于父级),它将有滚动条.

这是jsFiddle的例子.所以,基本上我想拥有所有这三列,彼此相邻,并在父div的底部使用滚动条.

HTML:

<div class="content">
    <div class="column">Column</div>
    <div class="column">Column</div>
    <div class="column">Column</div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

content {
    width: 100px;
    background- color: #355E95;  
    overflow: visible;
}

.column {
    width: 50px;
    display: inline-block;
}
Run Code Online (Sandbox Code Playgroud)

html css css3

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

如何使用.pch与clang?

我有头文件header.h:

#define TEST_VALUE 1
#define TEST_STRING "hello world"
Run Code Online (Sandbox Code Playgroud)

和源文件source.cpp:

#include "header.h"
#include "stdio.h"

int main() {
    printf(TEST_STRING"\n");
}
Run Code Online (Sandbox Code Playgroud)

我跟着clang pch文章并表演了:

MBA-Anton:pch asmirnov$ clang -cc1 ./header.h -emit-pch -o ./header.pch
MBA-Anton:pch asmirnov$ clang -cc1 -include-pch header.pch source.cpp -o source
error: C99 was enabled in PCH file but is currently disabled
1 error generated.
MBA-Anton:pch asmirnov$ clang -I. source.cpp -o source
MBA-Anton:pch asmirnov$ ls
header.h    header.pch  source      source.cpp
MBA-Anton:pch asmirnov$ ./source 
hello world
Run Code Online (Sandbox Code Playgroud)

所以我无法与PCH链接,但我可以编译/链接源+标头.与clang文章的例子的唯一区别是我已经尝试过c ++并且它是针对c描述的.所以我试着指定c ++语言:

MBA-Anton:pch asmirnov$ clang -cc1 ./header.h …
Run Code Online (Sandbox Code Playgroud)

clang pch

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

是否有任何C编译器会警告使用未声明的定义

我最近遇到了以下构造的情况

#if BYTE_ORDER == LITTLE_ENDIAN
   do_something();
#endif
Run Code Online (Sandbox Code Playgroud)

导致'do_something()'被编译,如果既BYTE_ORDER没有LITTLE_ENDIAN定义也没有定义.虽然这不是不合理的行为,但我无法在gcc上找到任何选项在这种情况下给我一个警告.

如果没有警告,您可以进入相当令人担忧的情况,即有人可以删除一个明显未使用的标头,它将完全改变编译结果,因为它导致包含定义这两个宏的标头(并以不同方式定义它们).

c

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

使用XMLHttpRequest获取非utf8数据

我想从网上获取一份文件xmlHttpRequest.然而,有问题的文字不是utf8(在这种情况下它是windows-1251,但在通用情况下,我肯定不知道).

但是,如果我使用responseType="text"它,就好像字符串是utf8,忽略内容类型中的字符集(导致令人讨厌的混乱).

如果我使用'blob'(可能是我想要的最接近的东西),那么考虑到编码,我可以将其转换为DomString吗?

javascript xmlhttprequest utf-8

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

makefile patsubst 多个表达式

我试图简化我的一些 makefile,我开始这样做:

TEMP_OBJECTS_C = $(patsubst %.c,%.c.o,$(C_SOURCES)) 
TEMP_OBJECTS_CPP = $(patsubst %.cpp,%.cpp.o,$(CPP_SOURCES)) 
Run Code Online (Sandbox Code Playgroud)

但我真正想做的只是将 .o 附加到以 .c 或 .cpp 结尾的任何内容。这仅适用于 .c,如果我想添加 cpp 文件,我必须进行完全独立的替换。我试过这个:

TEMP_OBJECTS = $(patsubst %.c,%.c.o,$(SOURCES)) $(patsubst %.cpp,%.cpp.o,$(SOURCES))
Run Code Online (Sandbox Code Playgroud)

SOURCES 是所有 cpp 和 c 文件,但随后我显然得到了重复的文件,以及其中的原始源文件名...

所以,我去了这个:

TEMP_OBJECTS = $(patsubst %.c,%.c.o,$(SOURCES))
TEMP_OBJECTS = $(patsubst %.cpp,%.cpp.o,$(TEMP_OBJECTS))
Run Code Online (Sandbox Code Playgroud)

但后来它抱怨递归。

有什么方法可以制作我需要的东西吗?谢谢

makefile

4
推荐指数
1
解决办法
4213
查看次数

检查字符串是否以一组字符串之一开头的有效方法

我需要匹配一个字符串,以查看它是否以大约40个字符串中的一个开头,并且这个方法被称为很多.

目前确实如此

for pref, newval in list_of_prefixes:
    if oldval.startswith(pref):
         return newval
return oldval
Run Code Online (Sandbox Code Playgroud)

然而,鉴于它被称为很多次,因此尽可能高效是有道理的.我可以确保list_of_prefixes被排序,然后在pref> oldval之后立即退出循环,但这似乎没有太大的收获.

目前,最大数量的输入值介于两个前缀之间,所以我可以明确地测试它,或者以相反的顺序搜索,但是虽然这对于现在的数据集是有效的,但是如果数据集改变则可能效率较低.

最初,只有一个可能的前缀,因此性能可能不是一个问题.

我看了一下string.startswith(tuple()),但这似乎只是为了让它更容易编写,并且它不会告诉我哪个元组匹配,所以在有匹配的地方我必须做两次检查.

python

4
推荐指数
1
解决办法
720
查看次数

使用编译器生成的默认初始化的成员初始化顺序

鉴于以下内容:

class D { ... };

struct C
{
    D d;
    int a;
    C() : a(5) {}
};
Run Code Online (Sandbox Code Playgroud)

编译器会生成初始化的代码C::d,但它d会在之前或之后初始化a吗?或者它是实现定义的?还是未定义?

我问,因为我看到至少有一个编译器说我的初始化程序与数据成员的顺序不匹配.

c++ initialization

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

Git和文件重命名和替换

我通常没有使用git重命名的问题,但我遇到了一个非常困难的问题,我正在尝试解决.

由于各种原因,我的情况是我们有一个文件dir1/file.由于很久以前的决定,它完全是错误的地方,需要转移到dir2/file.

但是,有很多代码需要更改,出于各种原因,我们必须将文件保留在新位置和旧位置一段时间.

所以,自然(ish)方法是这样做:

git mv dir1/file dir2/file
git commit -a
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好:

> git diff master --name-status --find-renames
R100 dir1/file dir2/file
Run Code Online (Sandbox Code Playgroud)

那么我们呢

ln -s ../dir2/file dir1/file
git commit -a
Run Code Online (Sandbox Code Playgroud)

但这发生了

> git diff master --name-status --find-renames
A    dir2/file
T    dir1/file
Run Code Online (Sandbox Code Playgroud)

如果任何人改变dir1/file了主人并且我试图拉它,我会被告知存在合并冲突dir1/file1dir2/file1保持不变.我想通过阅读git跟踪内容的其他帖子,但它似乎跟踪文件名和内容.完全忽略了内容已经移动的事实.

那么我怎么能得到git来识别我实际上已经重命名了一个文件然后添加了一个新文件,它恰好与旧文件同名?

注意:我不想做多次推送.有几个这样的文件受到影响,并且有人对其中一个并行进行更改的可能性非常高,并且无法保证他们能够执行拉动以获得重命名然后拉动以获得软链接.

另外的例子.我正在从python模块中删除一个函数,该模块__init__.py本来就不应该在那里,__init__.py应该是空的.这也没有被发现作为重命名.即使新文件__init__.py的内容与原始文件的内容99%相同,并且新__init__.py内容的内容与旧内容的0%相同.一切都很好,直到我添加一个具有相同名称的文件.

git rename

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

通过>&了解重定向

我知道0,1,2是STDIN,STDOUT和STDERR文件描述符.我想了解重定向.'>'表示转储到文件'>>'表示追加

但'&'做什么呢?以下命令的分步过程是什么?

command > file 2>&1       
command > file 2<&1       
Run Code Online (Sandbox Code Playgroud)

unix

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

外部"C"与const

我们的系统中有一段C代码,其中包含一些具有全局访问权限的数组:

source.h

extern const int magic[5];
Run Code Online (Sandbox Code Playgroud)

由source.c:

const int magic[] = { 1, 2, 3, 4, 5};
Run Code Online (Sandbox Code Playgroud)

有人认为将其更改为C++是一个好主意,所以上面的结果是一个extern "C"块:

source.h:

extern "C" { 
    const int magic[5]; 
}
Run Code Online (Sandbox Code Playgroud)

source.cc:

extern "C" {
    const int magic[] = { 1, 2, 3, 4, 5};
}
Run Code Online (Sandbox Code Playgroud)

编译时没有使用gcc -Wall发出吱吱声

直到有人试图使用该阵列我们发现了问题.使用const一个内部extern "C"的原因没有外部符号在所有生成.这发生在gcc,sun workshop和ibm的编译器上.

考虑到gcc没有警告你,你做的事情很奇怪,我有点不知道这是否是预期的行为.

这个标准所规定的行为也是如此,还是一个相当普遍的错误?

c c++

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

标签 统计

c ×2

c++ ×2

clang ×1

css ×1

css3 ×1

git ×1

html ×1

initialization ×1

javascript ×1

makefile ×1

pch ×1

python ×1

rename ×1

unix ×1

utf-8 ×1

xmlhttprequest ×1