是否有任何可移植的方法来确定任何类型的最大可能对齐方式是什么?
例如,在x86上,SSE指令需要16字节对齐,但据我所知,没有指令需要更多,因此任何类型都可以安全地存储到16字节对齐的缓冲区中.
我需要创建一个缓冲区(例如char数组),我可以在其中编写任意类型的对象,因此我需要能够依赖缓冲区的开头进行对齐.
如果一切都失败了,我知道,分配使用char数组new保证具有最大对齐,而是与TR1/C++ 0x中的模板alignment_of和aligned_storage,我想知道是否有可能在我的缓冲创建就地缓冲区类,而不是要求动态分配的数组的额外指针间接.
想法?
我意识到有很多选项可以确定有界类型的最大对齐:一个联合,或者只是alignment_of来自TR1,但我的问题是类型集是无界的.我事先并不知道哪些对象必须存储到缓冲区中.
我设置数据网格的最小高度:
<DataGrid MinRowHeight="40">
Run Code Online (Sandbox Code Playgroud)
在使用数据为数据网格提供数据后,每个单元格中的文本都是顶部和左侧对齐的.我找不到一种简单的方法来集中文本.
这样做有什么建议吗?
所有三个元素都位于屏幕顶部并拉伸以填充宽度,但我希望它们从上到下垂直拉伸以填充屏幕。
我尝试Row在所有内容周围添加一个,但它会引发错误RenderFlex children have non-zero flex but incoming width constraints are unbounded?所以我尝试将它包装Row在一个Expanded小部件中,该小部件会引发错误“扩展的小部件必须放置在 Flex 小部件内”。
return Scaffold(
backgroundColor: Color(0xFF222222),
body: Column(
children: <Widget>[
SizedBox(height: 20),
Row(
// crossAxisAlignment: CrossAxisAlignment.stretch,//throws error
children: <Widget>[
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Container(
color: Colors.red,
child: Text('Left', textAlign: TextAlign.center),
),
],
),
),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Container(
color: Colors.red,
child: Text('Right', textAlign: TextAlign.center),
),
],
),
),
],
),
Column(
crossAxisAlignment: CrossAxisAlignment.stretch, …Run Code Online (Sandbox Code Playgroud) 如果我有一个联合,C标准保证联合本身将与最大元素的大小对齐.
union U {
long l;
int i;
short s;
char c[2];
} u;
Run Code Online (Sandbox Code Playgroud)
但它对联盟内各个联盟元素的对齐有什么看法呢?以下表达式是否保证是真的?
(&u.l == &u.i) && (&u.i == &u.s) && (&u.s == &u.c[0])
Run Code Online (Sandbox Code Playgroud) 这可能是一个例子最好的解释.我有下表,其中"A"单元格跨越两行,"B"单元格跨越两列.
\begin{table}[htdp]
\begin{tabular}{l|r|r}
\multirow{2}{*}{A} & \multicolumn{2}{c}{B} \\
& B1 & B2 \\
a & b1 & b2 \\
a & b1 & b2 \\
\end{tabular}
\end{table}
_ _ _ _ _ _ _ _ _ _ _ _
|A |_ _ _ _B_ _ _ _|
|_ _ _ _|_ _B1_ |_ _B2_ |
|a | b1| b2|
|a | b1| b2|
|a | b1| b2|
|_ _ _ _| _ _ _ |_ _ _ _|
Run Code Online (Sandbox Code Playgroud)
我想将文本集中在"A"单元格中.我想让列的其余部分左对齐.赠送:
_ _ …Run Code Online (Sandbox Code Playgroud) 我正在申请iPad,只支持横向模式.我有一个UIView,后来我动态添加UIImageView为子视图.但是我的目标是在图像的中心添加图像UIView.所以我使用了这段代码,
[imageView setCenter:dynamicMainView.center];
Run Code Online (Sandbox Code Playgroud)
其中UIImageViewimageView 是(明显:))和dynamicMainView UIView,但最终的结果讲述似乎在中心,
视觉表现

在UIView中添加UIImageView的完整方法代码是,
-(void) addImageIntoMainDynamicView:(UIImage *) image
{
[self clearImageFromMainDynamicView];//Always clear Dynamic main view before adding new views
imageView = [[UIImageView alloc] initWithImage:image];
if(imageView.bounds.size.width > dynamicMainView.bounds.size.width || imageView.bounds.size.height > dynamicMainView.bounds.size.height)
{
[imageView setFrame:[dynamicMainView bounds]];
}
[imageView setCenter:dynamicMainView.center];
NSLog(@"Image : X = %f and Y = %f", imageView.center.x,imageView.center.y );
NSLog(@"UIView : X = %f and Y = %f", dynamicMainView.center.x,dynamicMainView.center.y );
[dynamicMainView addSubview:imageView];
[imageView release];
}
Run Code Online (Sandbox Code Playgroud)
以上日志值是,
2011-12-21 …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的问题:我需要将一个表集中在一个TD元素中.如果我使用HTML 4,我会这样做:
?<table style="border:solid;width: 100%">
<tr>
<td align="center">
<table style="border:solid; width:50%">
<tr>
<td >I must be in the center</td>
</tr>
</table>
</td>
</tr>
</table>?
Run Code Online (Sandbox Code Playgroud)
但我试图不使用已弃用的属性并以CSS方式执行.我已经尝试过了:
<td style="text-align:center">
Run Code Online (Sandbox Code Playgroud)
还有这个:
<td style="margin: 0 auto">
Run Code Online (Sandbox Code Playgroud)
表格保留在单元格的左侧.有什么建议?
无论我在互联网上的哪个地方,我都不断地打败我,我不应该使用桌子.可悲的是,我是少数几个顽固到可以使用它们的程序员之一 - 我坦率地发现CSS的对齐和布局功能对我来说不够强大,冷火鸡,停止使用表格.由于我的个人程序员特性被搁置,我想尝试用CSS系统攻击我的一个主要不满:
假设我想要这样的布局:
+---+---+
| A | B |
+---+---+
| C | D |
+---+---+
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我希望A和C的宽度相同,并且宽度B和D保持不变.
我也想的高度A,并B保持锁定在一起,和我想的高度C和d留在彼此相同.
为了澄清,如果列中的任何元素变宽,我希望该列中的所有元素都变得更宽.如果一行中的任何元素变得更高,我再次希望同一行中的所有元素也变得更宽.
我刚刚描述的是我们的老朋友桌子的确切功能.在我看来,表格对于这些布局非常有用!如果我尝试类似于使用CSS布局的东西,我可能得到这样的东西:
+-------+---+
| A | B |
+---*---*---+
| C | D |
+---+-------+
Run Code Online (Sandbox Code Playgroud)
这非常不是我正在寻找的那种布局.(A并且C制作锯齿状的柱子,而不是像我希望的那样完美,平滑的柱子)
简单地说我的问题,我真的可以使用一种方法,使用CSS布局(而不是预定义的宽度或高度)将一个CSS框的边缘的位置与不同CSS框的边缘的位置对齐.如果CSS支持这一个简单的功能,我可以立即放下表格,并创建甚至超出表格功能的布局!这种电源的良好但无用的例子是在桌子的相对侧上的两个断开的盒子,动态地共享彼此完全相同的高度和垂直位置.
但不幸的是,在我的互联网搜索中,到目前为止我发现的最先进的对齐是中心,左和右对齐.所有与OTHER元素无关的对齐类型,使它们无用.
我想要的只是一种将HTML元素与其他HTML元素对齐而无需使用表格的方法!
在为这个问题挑选标签时,我遇到的描述几乎总结了一切:
Relativelayout:一种布局,其中可以相对于彼此或与父母相关地描述孩子的位置.
有一个CSS RelativeLayout吗?或者,每当我想要这样做时,我都会使用表格?
我将接受最接近我想要的功能的答案,而不使用预定的宽度或高度(如果没有其他人提供更好的东西,包括答案"没有那样的存在").
具体来说,这是一个讨论:
内存消耗明智,是否有可能使用
struct两个ints占用更多内存而不仅仅是两个ints?
或者,用语言来说:
#include <iostream>
struct S { int a, b; };
int main() {
std::cout << (sizeof(S) > sizeof(int) * 2 ? "bigger" : "the same") << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
是否有任何合理的1(不一定是普通或当前)环境,这个小程序会打印出来bigger?
1为了澄清,我在这里所指的是以一些有意义的数量开发和生产的系统(和编译器),特别是不是为了证明这一点而构建的理论示例,或一次性原型或业余爱好者创作.