我遇到以下情况:
//This is Public
class B{/*usefull stuff*/};
B*f();
void g(B*b)();
//Those classes are only declared the translation unit of f and g.
class Whatever1{/*Implementation details only useful to f and g*/};
class Whatever2{/*Implementation details only useful to f and g*/};
class A{
public:
Whatever1 w1;
Whatever2 w2;
B b;
};
Run Code Online (Sandbox Code Playgroud)
在函数g中,我想将参数(指向B的指针)转换为指向A的指针.
B实例始终包含在A实例中.
我最终得到了这个:
ptrdiff_t lag(){
A a;
return (char*)&a.b-(char*)&a;}
void g(B*b){
A*a=(A*)((char*)b-lag());
//Work with a
}
Run Code Online (Sandbox Code Playgroud)
这个解决方案让我非常不舒服.
这样的偏移计算是100%正确和便携吗?
它是否以任何方式触发未定义的行为?
编辑:std :: is_standard_layout <A> ::值为1.
我想确定#target的偏移相对于#a下面的HTML文档中-即,我想找到的价值观x和y:
http://dl.dropbox.com/u/2792776/screenshots/2012-06-09_1814.png
jQuery 有position(),但$("#target").position()返回#target相对于其父偏移量的偏移量,即#c(不是#a)
我需要一个等价于的函数,$.fn.position()而是返回相对于目标的“偏移祖先”的位置,而不是它的直接偏移父级。例如:$("#target").positionRelativeTo("#a")
我正在使用 viewpager 来显示文件夹的内容。在页面之间我有 96 像素的页边距。为了处理配置更改,我在 AndroidManifest.xml 中添加了以下几行:
<activity
android:name="SimpleFilePreviewerActivity"
android:configChanges="keyboardHidden|orientation|screenSize" >
</activity>
Run Code Online (Sandbox Code Playgroud)
从最左边的页面开始,当我旋转我的设备时,一切都会根据需要进行处理。然而,在接下来的页面上,旋转后视图不再以屏幕为中心,而是有一个偏移,当 ViewPager 向右滑动时,它会变得更糟。
当屏幕旋转后触摸屏幕时,显示的视图将重新居中。此偏移仅在页边距设置为大于 0 时发生。
这是一个已知的错误?有没有办法遇到这个偏移问题?
提前致谢,
弗洛
我正在尝试将每个移动<li>到屏幕顶部onClick(),并且使用它可以正常工作,scrollIntoView();但是因为我的标题是固定的,所以一小部分内容<li>位于标题下方。如何滚动<li>到标题正下方。
HTML
<header></header>
<div id="wrapper">
<ul>
<li id='li1' onClick="moveup(1)"> blah blah blah blah blah <br/>
blah blah blah blah blah <br/>
blah blah blah blah blah <br/>
blah blah blah blah blah <br/>
blah blah blah blah blah <br/>
</li>
<li id='li2' onClick='moveUp(2)'> blah blah blah blah blah <br/>
blah blah blah blah blah <br/>
blah blah blah blah blah <br/>
blah blah blah blah blah <br/>
blah blah blah …Run Code Online (Sandbox Code Playgroud) 我正在尝试读取从命令行参数解析的文件,每次 16 个字节。我将字节存储在一个无符号字符数组中。然后,我尝试以 HEX 格式打印元素,然后,如果它们是可打印字符,则打印它们,如果不是,则打印一个点“。” 我还想在每个新行上打印文件开头的字节偏移量,但我想在开始处理之前让其余部分工作。我遇到的问题是我正在读取的文件没有打印,所以我认为我做得不对。我开始使用,fread()但我想我可能需要使用,fseek()但我不确定。如果有人能指出我正确的方向或告诉我我是否做错了什么,我将不胜感激。
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fp;
int i, j;
unsigned char buffer[17];
fp = fopen(argv[1], "r");
while(!feof(fp))
{
while(fread(buffer, 16, 1, fp) !=0)
{
for(i=0; i < 16; i++)
{
printf("%X ", buffer[i]);
}
for(j = 0; j < 16; j++)
{
if(isprint(buffer[j]))
printf("%s", buffer[j]);
else
printf("." );
}
printf("\n");
}
}
fclose(fp);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
预期输出:
0001: 40 4F 28 …Run Code Online (Sandbox Code Playgroud) 如果我有一个如下的一对多表:
FamilyId UserId
1 1
1 2
2 3
2 4
3 5
Run Code Online (Sandbox Code Playgroud)
我可以offset/fetch用来获取一组行。但是我怎样才能用它来获得一组家庭呢?我怎样才能fetch例如,前两个家庭使用(在这种情况下,共4行返回)offset/fetch?
我有两行的数据文件(两行仅用于我的示例,实际上,该文件可以包含数百万行)并且我使用带有偏移量的 SplFileObject 和 LimitIterator。但是这种组合在某些情况下有奇怪的行为:
$offset = 0;
$file = new \SplFileObject($filePath);
$fileIterator = new \LimitIterator($file, $offset, 100);
foreach ($fileIterator as $key => $line) {
echo $key;
}
Run Code Online (Sandbox Code Playgroud)
输出为:01
但是将$offset设置为1,输出为空(foreach 不迭代任何行)。
我的数据文件包含这个:
{"generatedAt":1434665322,"numRecords":"1}
{"id":"215255","code":"NB000110"}
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
谢谢
默认情况下,SVG中text元素的锚点位于左下角,但我希望它位于左上角,因为我还创建了一个矩形作为文本的背景,但是由于显示不正确,文本高于矩形(因为矩形的锚点/偏移量位于左上方)。有没有办法解决此问题,因此可以在相同的坐标处绘制文本和矩形,并在相同的位置显示它们。
在我的函数 GetAssemblyResourceStream(下面的代码)中,我使用“assembly.GetManifestResourceStream”和“resourceReader.GetResourceData”从 Dll 读取资源。
当我从资源的字节数组设置内存流时,我必须包含 4 个字节的偏移量:
const int OFFSET = 4;
resStream = new MemoryStream(data, OFFSET, data.Length - OFFSET);
Run Code Online (Sandbox Code Playgroud)
那个偏移的原因是什么?它来自哪里?
参考:MSDN ResourceReader 类末尾的示例
另外:我制作了一个测试应用程序来更好地理解资源。该应用程序显示了我在偏移量方面的问题。我的小测试应用程序可在Github (VS 2015)
更新 2015-10-05 10h28由于答案非常低,我怀疑存在错误和/或未记录的行为。我在Connect.Microsoft.com 上报告了一个错误,并将看到结果。
2015-10-07 更新我删除了错误。我仍然认为它没有得到很好的记录和/或可以被视为一个错误,但我非常怀疑他们会在不做任何事情的情况下关闭我的请求。我希望没有人会遇到和我一样的问题。
代码:
// ******************************************************************
/// <summary>
/// The path separator is '/'. The path should not start with '/'.
/// </summary>
/// <param name="asm"></param>
/// <param name="path"></param>
/// <returns></returns>
public static Stream GetAssemblyResourceStream(Assembly asm, string path)
{
// Just to be …Run Code Online (Sandbox Code Playgroud) 我在用
builder.moveToElement(element).moveByOffset(x,y).click().build().perform();
Run Code Online (Sandbox Code Playgroud)
在上面的函数中,我不确定 X 和 Y 的值,因此我必须多次运行测试才能找出 X 和 Y 的正确值。
示例:首先我会尝试使用 5、5,然后如果我看到它比 5、10 等更靠右一点。
他们有办法一次性找到它吗?