inline

Linux 内核编码风格

为君一笑 提交于 2020-03-22 03:12:05
/*--> */ /*--> */ 序   像其他大型软件一样,Linux制订了一套编码风格,对代码的格式、风格和布局做出了规定。我写这篇的目的也就是希望大家能够从中借鉴,有利于大家提高编程效率。   像Linux内核这样大型软件中,涉及许许多多的开发者,故它的编码风格也很有参考价值。 括号    1、左括号紧跟在语句的最后,与语句在相同的一行。而右括号要另起一行,作为该行的第一个字符。      2、如果接下来的部分是相同语句的一部分,那么右括号就不单独占一行。   3、还有      4、函数采用以下的书写方式:         5、最后不需要一定使用括号的语句可以忽略它:    每行代码的长度   要尽可能地保证代码长度不超过80个字符,如果代码行超过80应该折到下一行。   将参数分行输入,在开头简单地加入两个标准tab:    命名规范   名称中不允许使用混合的大小写字符。 局部变量如果能够清楚地表明它的用途,那么选取idx甚至是i这样的名称都是可行的。而像theLoopIndex这样冗长反复的名字不在接受之列。——匈牙利命名法(在变量名称中加入变量的类别)危害极大。 函数   根据经验函数的代码长度不应该超过两屏, 局部变量不应该超过十个 。 1、一个函数应该功能单一并且实现精准。 2、将一个函数分解成一些更短小的函数的组合不会带来危害。—

[BZOI2018]治疗之雨

房东的猫 提交于 2020-03-21 10:50:10
题面: Luogu 题解:期望dp+gauss消元 先吐槽一下这个题面,根本看不懂,看讨论区半天才发现,另外m个就是用来降低概率的 设 \(prob_i\) 表示一轮降了 \(i\) 点的概率 \[Prob_i=\frac{\binom{k}{i}m^{k-i}}{(m+1)^k}\] 总共 \((m+1)^{k}\) 种方案,选 \(i\) 次降一点,剩下的不降 由于 \(k\) 很大,所以 \(\binom{k}{i}\) 不能通过预处理阶乘算出,而要递推(否则会#6~#10RE) 递推方法很多,我的是 \[prob_i=\frac{1}{i!}*m^{k-i}*\frac{k!}{(k-i)!}*\frac{1}{(m+1)^k}\] 设 \(Q_{x,y}\) 表示一轮操作从 \(x\) 点变成 \(y\) 点 \[Q_{x,y}=\begin{split} \left\{ \begin{array}{lr} 0 & x=n \&\& y=n+1 &\\ Prob_{x-y} & x=n\\ \frac{1}{m+1}Prob_0 & y=x+1\\ \frac{m}{m+1}Prob_{x-y}+\frac{1}{m+1}Prob_{x-y+1} & \text{otherwise} \end{array} \right. \end{split} \] 设 \(dp_i\

GCC和C99标准中inline使用上的不同之处。inline属性在使用的时候,要注意以下两点:inline关键字在G

十年热恋 提交于 2020-03-20 10:28:44
本文介绍了GCC和C99标准中inline使用上的不同之处。inline属性在使用的时候,要注意以下两点: inline关键字在GCC参考文档中仅有对其使用在函数定义(Definition)上的描述,而没有提到其是否能用于函数声明(Declare)。 从 inline的作用来看,其放置于函数声明中应当也是毫无作用的:inline只会影响函数在translation unit(可以简单理解为C源码文件)内的编译行为,只要超出了这个范围inline属性就没有任何作用了。所以inline关键字不应该出现在函数声明 中,没有任何作用不说,有时还可能造成编译错误(在包含了sys/compiler.h的情况下,声明中出现inline关键字的部分通常无法编译通 过); inline 关键字仅仅是建议编译器做内联展开处理,而不是强制。在gcc编译器中,如果编译优化设置为-O0,即使是inline函数也不会被内联展开,除非设置了强制内联(__attribute__((always_inline)))属性。 1. GCC 的 inline gcc对C语言的inline做了自己的扩展,其行为与C99标准中的inline有较大的不同。 1.1. static inline GCC 的static inline定义很容易理解:你可以把它认为是一个static的函数,加上了inline的属性

inline,block和inline-box的区别

好久不见. 提交于 2020-03-19 13:39:50
block,inline和inlinke-block细节对比 display:block block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。 block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。 block元素可以设置margin和padding属性。 display:inline inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。 inline元素设置width,height属性无效。 inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。 display:inline-block 简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。 来源:

display转块状化

风格不统一 提交于 2020-03-19 13:39:20
display:block block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。 block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。 block元素可以设置margin和padding属性。 display:inline inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。 inline元素设置width,height属性无效。 inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。 display:inline-block 简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。 ---恢复内容结束--- 来源: https://www.cnblogs

block,inline和inlinke-block细节对比

假如想象 提交于 2020-03-19 13:38:57
block,inline和inlinke-block细节对比 display:block block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。 block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。 block元素可以设置margin和padding属性。 display:inline inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。 inline元素设置width,height属性无效。 inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。 display:inline-block 简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。 来源:

2 css常识二

和自甴很熟 提交于 2020-03-19 13:38:19
1 链接 a:link {color:#000000;} /* 未访问链接*/ a:visited {color:#00FF00;} /* 已访问链接 */ a:hover {color:#FF00FF;} /* 鼠标移动到链接上 */ a:active {color:#0000FF;} /* 鼠标点击时 */ 2 表单 - label标签 3 布局 所有CSS布局技术基本上都是三个基本概念: 定位 , 浮动 和 外边距操纵 。 两列布局 4 block,inline和inlinke-block display:block block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。 block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。 block元素可以设置margin和padding属性。 display:inline inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。 inline元素设置width,height属性无效。 inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果

电梯模拟 设计

牧云@^-^@ 提交于 2020-03-18 15:12:22
今天为大家带来一个超级好玩的电梯模拟系统 · 题目概要 模拟某校九层教学楼的电梯系统。该楼有一个自动电梯,能在每层停留,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。 电梯一共有七个状态,即正在开门(Opening)、已开门(Opened)、正在关门(Closing)、已关门(Closed)、等待(Waiting)、移动(Moving)、减速(Decelerate)。 乘客可随机地进出于任何层。对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。 模拟时钟从0开始,时间单位为0.1秒。人和电梯的各种动作均要消耗一定的时间单位(简记为t),比如: 有人进出时,电梯每隔40t测试一次,若无人进出,则关门; 关门和开门各需要20t; 每个人进出电梯均需要25t; 电梯加速需要15t; 上升时,每一层需要51t,减速需要14t; 下降时,每一层需要61t,减速需要23t; 如果电梯在某层静止时间超过300t,则驶回1层候命。 电梯调度规则: 1)就近原则:电梯的主要调度策略是首先响应沿当前行进方向上最近端的请求直到满足最远端请求。若该方向上无请求时,就改变移动方向; 2)在就近原则无法满足的情况下,首先满足更高层的请求; 3)电梯的最大承载人数为13人,电梯人数达到13人后,在有人出电梯之前,不接受进入电梯的请求; 4

Ynoi2012 NOIP2015洋溢着希望

北战南征 提交于 2020-03-18 07:07:35
写篇博客纪念一下人生第一道 \(YnOI\) 不过这个题确实是不复杂 Description link 支持两种操作,区间加和区间 \(sin\) 和 \(n,m \le 2 \times 10^5\) Solution \[Begin\] 我们看到三角函数,还有加法 还是比较明显地指向了和角公式 如果不会和角公式? 这个百度应该可以 $ Get $ 到 \(sin(a+b)=sin(a) cos(b)+cos(a)sin(b)\) \(cos(a+b)=cos(a)cos(b)-sin(a)sin(b)\) \(sin\) 和 \(cos\) 的都用库里的函数就行 我们维护一下每个点的 \(sin\) 和 \(cos\) 就可以了吧…… 具体要这么写: inline void push_up(int p,double ts,double tc) { double s=sinn(p),c=coss(p); sinn(p)=ts*c+tc*s; coss(p)=tc*c-ts*s; return ; } inline void spread(int p) { if(fl(p)) { fl(p<<1)+=fl(p); fl(p<<1|1)+=fl(p); double ts=sin(fl(p)),tc=cos(fl(p)); push_up(p<<1,ts,tc); push_up(p

C++之类和对象的特性

假装没事ソ 提交于 2020-03-18 04:45:55
   简介:C++并不是一个纯粹的面向对象的语言,而是一种基于过程和面向对象的混合型的语言。 凡是以类对象为基本构成单位的程序称为基于对象的程序,再加上抽象、封装、继承和多态就成为面向对象程序。 1.掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性; 2.掌握类对象的定义; 3.理解类的成员的访问控制的含义,公有、私有和保护成员的区别。 4.能够根据给定的要求定义类并实现类的成员函数;   何为对象? 对象两要素:属性和行为; 属性对应于对象的数据;行为对应于函数; 对象之间可以通过一定的渠道相互联系;要使某一个对象实现某一种行为(操作),应当向它传送相应的 消息 。   封装与信息隐蔽 可以对一个对象进行封装处理,把它的一部分属性和功能对外屏蔽,外界看不到,甚至不可知;这就是封装。 所谓封装有两方面的含义:一是将有关数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相互独立,互不干扰;二是将对象中的某些部分对外隐蔽,即阴部内部细节,保留少量接口,以便与外界联系,接受外界信息。信息隐蔽有利于数据安全,防止无关的人了解和修改。   抽象:表示同一类事物的本质;类是对象的抽象,对象是类的特例,即类的具体表现形式;   继承和软件重用   多态 如果有几个相似而不完全相同的对象,有时要求在向它们发出同一个消息时,它们的反应各不相同,分别执行不同的操作