是否可以将CSS精灵用于"前景"图像 - 即用户应该点击并与之交互甚至打印的图像?
而不是使用CSS background-image属性.你会用什么?
(我在1993年左右开始编写C程序.当时时间不同,编译器可能有所不同,但我记得当一个人试图引用未声明的C函数时,会出现错误.另外,如果稍后定义该函数,可能在另一个翻译单元中,并且"签名"不匹配,则会出现另一个错误.)
我目前正在使用GCC 4.4.3.我很困惑为什么GCC对我(在示例中故意)不匹配(可选)声明bar和它的定义很宽容,bar.c其中显然会导致致命bar的地址错误 - 因为想要一个地址并给出一个整数,它结束取消引用该整数作为地址.一个严格的编译器,或者我认为,会因为错误而中止我.我错过了什么吗?我的构建命令行如下:
cc -o foobar -g -Wall -std=c99 -fexec-charset=ISO-8859-1 -DDEBUG foo.c bar.c
Run Code Online (Sandbox Code Playgroud)
用foo.c:
int main()
{
int a;
bar(a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
并且bar.c:
void bar(int * a)
{
*a = 1;
}
Run Code Online (Sandbox Code Playgroud)
我故意省略了声明bar并且故意传递了一个整数(可能是真的)而不是地址,因为它的实际定义需要.我的底线是:因为$(CC)不会阻止我,我最终会出现分段错误(x86,Ubuntu 10.04).我知道一个兼容的C(C99?)编译器会隐式创建一个int bar(void)声明,bar如果没有找到,但在这种情况下,这显然不是我想要的!我想保护自己免受各种错误的影响,因为我犯了人为错误的声明和定义不匹配或完全省略了前者.
我尝试使用-c编译器开关代替仅编译 - 但它并不重要,因为它仍然成功发出警告.虽然连接器可能会禁止,但我希望编译器在发生之前阻止我.
我并不真的想谈谈我的警告与错误的说-Werror,这是因为:
float bar(double a);在顶部包含错误foo.c,这完全消除了警告,但不会改变生成的程序崩溃的事实.唉,一个程序可以在没有警告的情况下成功编译(即使使用-Wall开关),并且在运行时可以很好地崩溃.我正在编译包,我看到Makefile作者经常在makefile中写入设置CFLAGS,有这样的选项.另一方面,我想尝试一些编译器优化,并希望传播编译器开关以尽可能少地解决问题.但这并不总是可行的.例如,当makefile指定CFLAGS并且我希望所有C编译器调用都使用-fomit-frame-pointer时,不必显式地写出类似的内容CFLAGS=-fomit-frame-pointer make,那些不是hackish的选项.从我所看到的有上述,然后有相同但不同的make "CFLAGS=-fomit-frame-pointer"我也可以做我认为是最好的解决方案和这个问题的原因:
export CFLAGS=-fomit-frame-pointer
make -e
Run Code Online (Sandbox Code Playgroud)
我认为这是最好的一个,因为坦率地甚至认为有潜在危险的标志,我不会调试那么多软件,当我需要时我可以根据需要重新编译一个特定的部分,调试信息和所有.否则我喜欢使用发布软件而不需要调试铃声和口哨,特别是如果包不是由我编写的.所以我想我具体要问的是:为什么make不会自动更喜欢makefile自己的环境变量?在所有环境都知道什么是最好的情况之后,如果作者确实需要他们的方式,那么就有'覆盖'语法,对吧?
我一直想知道更好地利用CPU缓存(已知从参考局部受益)的两个循环 - 两个循环,每个循环遍历相同的数字数组,每个循环体具有不同的循环体,或者具有一个循环将两个主体"连接"成一个,从而完成相同的总结果,但这一切本身呢?
在我看来,有两个循环会引入更少的缓存未命中和驱逐,因为循环使用的更多指令和数据适合缓存.我对吗?
假设:
f和g每个成本可以忽略不计f并且g每个缓存都使用大部分缓存,因此缓存将被一个又一个被调用的无效(单循环体版本就是这种情况)gcc 编译器,没有开关迭代的集合是一个数学集合,而不是像存储器或列表那样的内存中的数字容器.请参阅下面的示例.
请不要回答"过早优化是邪恶的"字符:-)
我倡导的双循环版本的一个例子:
int j = 0, k = 0;
for(int i = 0; i < 1000000; i++)
{
j += f(i);
}
for(int i = 0; i < 1000000; i++)
{
k += g(i);
}
Run Code Online (Sandbox Code Playgroud) 我有HTML标记,body元素中有一个文本段落.在CSS样式表中,我添加了:
body {
text-align: justify;
color: black;
background-color: white;
font-size: 23;
letter-spacing:0.05pt;
line-height: 125%;
font-size: 1.25em;
margin: 0.00em 20em;
text-indent: 0em;
font-weight: normal;
font-style: normal;
direction: rtl;
}
Run Code Online (Sandbox Code Playgroud)
当我在Safari 10.1中加载它时,文本超出了正文边框.但旧版Safari(10.0)中的相同标记在Chrome 56.0.2924.87(x86_64)中运行良好.
如何修复标记和样式以使其在新的Safari中工作?
我已经参考了cplusplus.com上的Explicit Template Instantiation文章,该文章给出了以下示例:
template <typename T> class Example
{
public:
Example( T test )
{
_data = test;
}
void setTest(T test)
{
_data = T;
}
private:
T _data;
};
class template Example<int>;
class template Example<float>;
class template Example<double>;
Run Code Online (Sandbox Code Playgroud)
除了我试图将一个类型分配给成员变量_data = T而不是我认为应该是什么之类的东西看起来像是一个遗漏错误_data = test- 我不明白的是最后3行声明或指示的是什么编译器要做什么?
我知道模板是什么,用它们构建程序,并且一般都知道它们的实例化和专业化.我对后两者的理解可能有一些漏洞,但我通常使用例如template class Example<int>;表单而不是片段中显示的那个来指示显式模板实例化.
我已经尝试使用编译片段g++ -std=c++11 -pedantic,它编译得很好而没有警告(我先纠正了_date = T上面的错误).
在我对一个相关问题的答案进行评论之后,我仍然不确定该片段中最后3行中的任何一行是模板特化还是实例化.
我想使用标签来创建自定义文件输入:
input[type="file"] {
width: 0.1px;
height: 0.1px;
opacity: 0;
overflow: hidden;
position: absolute;
z-index: -1;
}
section {
padding: 30px;
border: 1px solid lightgray;
width: 200px;
margin: 100px;
}
label {
display: block;
}Run Code Online (Sandbox Code Playgroud)
<section>
<label for="test">
<input type="file" id="test">
<button>Click me</button>
</label>
</section>Run Code Online (Sandbox Code Playgroud)
但是,当我单击标签内的按钮时,它不会打开文件弹出窗口,只有当我单击标签外部时,它才起作用。我怎样才能做到这一点?
我知道这是一个很大的问题.事实上,它可能用于一些SO社区维基.
无论如何,我正在运行一个不使用显式身份验证的网站.这是公开的,对所有人开放.但是,由于服务的性质,一些用户需要因不当行为而被锁定.
我目前正在阻止IP地址,但我知道许多人故意重置他们的DHCP客户端缓存以让他们的ISP为他们分配新地址.这是事实吗?对于一些想要规避拒绝访问的人来说,我认为这肯定是一种利润丰厚的可能性.因此,IP成为处理此问题的次优方式.但没有别的,是吗?
MAC地址不能在WAN上生存(从跳到跳变?),即使他们这样做了 - 这些也可能是欺骗性的,尽管我认为不如IP更新容易.
饼干甚至Flash饼干都是不可能的,因为有大量的"教程"如何擦除这些,并且那些打算在互联网上造成严重破坏的人非常清楚并且能够很好地应对我将采用的基本措施.
还有什么可以依靠的吗?我正在考虑启发式分析 - 从客户端收集可用数据并形成一些关键,但还没有实现它 - 它是一个选项吗?
这是一个简单的编程问题.我不是Java专家.假设我使用自定义类Company和Employee的对象,方式与许多RDBMS示例的方式类似:
class Employee
{
Company company;
}
class Company
{
String name;
}
Run Code Online (Sandbox Code Playgroud)
我需要保证不同的Company对象具有唯一的名称 - 即没有两个这样的对象可能具有相同的名称,因为从我的角度来看它没有任何意义,也只是吃内存 - 如果两个员工在IBM工作,那么有一个单个Company对象name,期间.
我现在的想法是将Company构造函数设置为私有 - 以便将具有任意名称的公司对象分配的工作委托给受信任的方法 - 假设它将拒绝任何后续尝试创建具有已存在的名称的对象或返回现有的或新的对象(必要时创建一个).
问题是,我不确定如何优雅地完成这一任务.一件好事就是O(n)每次Company请求具有名称的对象时都不必进行查找- 所以为了方便我可能会使用哈希映射或二叉树吗?我还想覆盖Company识别对象的方式- 这导致我:我会覆盖Object.equals和/或Object.hashCode方法吗?
css ×3
c ×2
html ×2
javascript ×2
c++ ×1
c++11 ×1
caching ×1
cookies ×1
cpu ×1
environment ×1
gcc ×1
hashmap ×1
identity ×1
java ×1
justify ×1
keyword ×1
makefile ×1
map ×1
networking ×1
optimization ×1
profiling ×1
safari ×1
sprite ×1
sublimetext3 ×1
templates ×1
text-align ×1