Tag: 内联

一行中的CSS两个div宽度为50%,文件中有换行符

我尝试使用百分比作为宽度来构buildstream体布局。 这样做,我试过这个: <div style="width:50%; display:inline-table;">A</div> <div style="width:50%; display:inline-table;">B</div> 在这种情况下,他们不会站在一条线上,但是如果我删除它们之间的换行符,就像这样: <div style="width:50%; display:inline-table;">A</div><div style="width:50%; display:inline-table;">B</div> 那么它工作正常。 哪里有问题? 我怎么能这样做,但没有使用绝对位置和浮动。 ps对不起英文。 pss我希望我能很好的解释我的问题

内联函数 – 与inline关键字完全相同的是什么?

在这个链接中 ,解释了什么是内联函数,什么是内联关键字。 我正在阅读,因为我意识到我从来没有理解这两个概念的含义,以及如何在实践中使用它们。 我从我提供的链接引用和评论 内联函数或内联variables(自C ++ 17以来)是具有以下属性的函数或variables(自C ++ 17以来): 1)只要每个定义出现在不同的翻译单元中,程序中可能有多个内联函数或variables(自C ++ 17以来)的定义。 例如,可以在包含在多个源文件中的头文件中定义内联函数或内联variables(因为C ++ 17)。 这里我已经理解了问题,声明就是新标识符的说明 void func(void); 而定义是包括实体在内的实际实现 void func(void) { //some code… } 1)意味着我可以给不同的实现,只要他们在不同的翻译单位(即每个源文件每头e一个实现),但我很困惑的情况下,我有一个源文件source.cc与一个func声明和一个头文件与另一个func声明的翻译单元是source.cc+header.h ,在这种情况下声明了两次func没有任何意义,对吗? 2)内联函数或variables(自C ++ 17以来)的定义必须存在于被访问的翻译单元中(不一定在访问点之前)。 这是通常的情况下,我把声明和头文件中的第一个分开,第二个是在源文件中,如果我需要使用函数,我只需要包含头部权限? 访问点将在链接阶段由源提供,是正确的? 3)具有外部链接(例如未声明为静态)的内联函数或variables(自C ++ 17以来)具有以下附加属性:1)必须在每个翻译单元中内联声明。 2)每个翻译单元都有相同的地址。 你能提供一个简单的例子吗? 我无法想象这种情况的实际情况。 情况3)指出,除非要声明的函数是静态的,否则关键字inline是强制性的。 我所说的一切到目前为止是正确的? 实际上,一个函数应该是内联的,当这样一个函数非常小的时候,但并不总是编译器会内联声明为内联的函数,例如,如果它有循环内部或recursion(Effective C ++ states)。 一般来说,这是编译器依赖,我现在奇迹… 假设我有两个函数,第一个函数是自包含的(它不会在内部调用任何其他函数),第二个函数是第一个函数(为了参数,您可以假设它们都是10行)。 他们是否应该在线声明? 他们应该在头文件中声明? 或者我应该分开头文件中的定义和源文件中的实现? 什么会更好? 编辑1 : 下面的答案之一是更好的,如果我通过例子工作,与相关的汇编代码分析。 我删除了以前的代码,因为它没有意义( -O3标志优化没有设置)。 […]

我应该什么时候(而不应该)使用Scala的@inline注释?

我相信我理解了内联函数的基础知识:不是函数调用导致参数被放置在堆栈上,而是发生调用操作,函数的定义在编译时被复制到调用的位置,从而节省了调用开销在运行时。 所以我想知道: scalac是否使用智能来内联一些函数(例如,私有def)而没有注释的提示? 我该如何判断什么时候向scalac暗示它是函数的一个好主意呢? 任何人都可以共享应该或不应该内联的函数或调用的例子吗?

如何使用:before和:after创build内联样式

我从http://www.ilikepixels.co.uk/drop/bubbler/生成了一个泡泡聊天 在我的页面里面放了一个数字 .bubble { position: relative; width: 20px; height: 15px; padding: 0; background: #FFF; border: 1px solid #000; border-radius: 5px; } .bubble:after { content: ""; position: absolute; top: 4px; left: -4px; border-style: solid; border-width: 3px 4px 3px 0; border-color: transparent #FFF; display: block; width: 0; z-index: 1; } .bubble:before { content: ""; position: absolute; top: […]

C ++内联类方法会导致未定义的引用

当我尝试内联某个类的方法时,出现编译器错误。 当我拿走“inline”关键字时,它就起作用了。 这是一个简单的例子: main.cpp中: #include "my_class.h" int main() { MyClass c; c.TestMethod(); return 0; } my_class.h: class MyClass { public: void TestMethod(); }; my_class.cpp: #include "my_class.h" inline void MyClass::TestMethod() { } 我试着编译: g++ main.cpp my_class.cpp 我得到的错误: main.cpp:(.text+0xd): undefined reference to `MyClass::TestMethod()' 一切都好,如果我拿走“内联”。 什么导致这个问题? (我应该如何内联类方法?是否有可能?) 谢谢。

应该从不使用静态内联函数吗?

使用inline关键字有两个含义(§7.1.3 / 4): 它暗示了编译器在调用点上函数体的replace比通常的函数调用机制更可取。 即使内联replace被省略,其他规则(特别是一个定义规则 )也是内联的。 通常任何主stream的编译器都会根据需要在调用点上replace函数体,所以不需要标记为#1函数。 更进一步的#2 ,据我所知,当你声明一个函数为static inline函数, 函数上的static关键字强制inline函数具有内部链接( 内联函数具有外部链接 )这样的函数的每个实例都被视为一个单独的函数( 每个函数的地址不同 ),并且这些函数的每个实例都有它们自己的静态局部variables和string文本的副本( 内联函数只有这些副本 ) 因此,这样的函数像任何其他static函数一样起作用,并且关键字inline不再重要,变得多余。 所以,实际上标记一个函数static和inline都没有用处。 要么它应该是static ( 不是最优选的 )或者inline ( 最优选的 ), 那么,在一个几乎没用的函数上使用static和inline ?

为什么内联被认为比函数调用更快?

现在,我知道这是因为没有调用函数的开销,而是调用函数的开销真的很重(并且值得让它内联)。 从我记得,当一个函数被调用时,说f(x,y),x和y被压入堆栈,堆栈指针跳转到一个空的块,并开始执行。 我知道这是一个过分简单化,但我错过了什么? 一些推动和跳转来调用一个函数,真的有那么多的开销? 让我知道,如果我忘记了一些东西,谢谢!

有什么理由不使用INLINABLE编译指示function吗?

该文件指出: 函数f上的{ – #INLINABLE f# – } pragma具有以下行为: 虽然INLINE说“请把我列入”,但是INLINABLE说:“随意联系我,使用你的自由裁量权”。 换句话说,select留给GHC,它使用与无杂注函数相同的规则。 与INLINE不同,该决定是在呼叫站点进行的,因此将受到内联阈值,优化级别等的影响。 像INLINE一样,INLINABLE pragma保留了原始RHS的内联目的,并将其保存在接口文件中,而不pipeRHS的大小如何。 使用INLINABLE的一种方法是与内联的特殊function(第7.18节“特殊内置function”)结合使用。 内联调用f很难内联f。 为了确保f可以内联,将f的定义标记为INLINABLE是一个好主意,这样GHC就可以保证揭示一个展开,而不pipe它有多大。 此外,通过将f注释为INLINABLE,可以确保f的原始RHS是内联的,而不是任何随机优化的GHC优化器生成的版本。 INLINABLE pragma也适用于SPECIALIZE:如果将函数f标记为INLINABLE,那么随后可以在另一个模块中进行SPECIALIZE(请参见第7.16.8节“SPECIALIZE pragma”)。 与INLINE不同的是,在recursion函数中使用INLINABLE编译指示是可以的。 这样做的主要原因是为了让以后使用SPECIALIZE 它有什么缺点? 它是否使界面文件更大,更大? 它会使编译速度变慢吗? 有什么理由不应该在我写的每个导出的函数上放置一个INLINABLE编译指示? 有没有什么原因GHC不会在我写的每个导出的函数上放置一个INLINABLE编译指示?

为什么不标记所有内联?

首先,我不想要强制编译器内联每个函数的实现。 为了减less误导的答案的水平,请确保您了解inline关键字的实际含义。 这里是很好的描述, 内联vs静态vs外部 。 所以我的问题,为什么不标记每个函数定义inline ? 理想情况下,唯一的编译单元是main.cpp 。 或者可能还有一些不能在头文件中定义的函数(pimpl idiom等)。 这个奇怪的请求背后的理论是它会给优化器最大的信息工作。 它当然可以内联函数实现,但是它也可以做“跨模块”优化,因为只有一个模块。 还有其他优点吗? 有没有人用真正的应用程序试过这个? 表演增加了吗? 减less?!? inline标记所有函数定义有什么缺点? 编译可能会更慢,会消耗更多的内存。 迭代构build被破坏,整个应用程序将需要在每次更改后重build。 链接时间可能是天文数字 所有这些缺点只会影响开发者。 什么是运行时间的缺点?

HTML:更改文本string中特定单词的颜色

我有下面的消息(稍作改动): “2011年1月30日前参加比赛,你可以赢得$$$$–包括惊人的夏季旅行!” 我目前有: <p style="font-size:14px; color:#538b01; font-weight:bold; font-style:italic;"> 格式化文本string,但要将“2011年1月30日”的颜色更改为#FF0000,将“夏季”更改为#0000A0。 我如何严格使用HTML或内联CSS?