{
char *a, *b;
printf("%lx\n",(b-a));
}
Run Code Online (Sandbox Code Playgroud)
通常可行,实际上,我无法想象它会在32位或64位机器上发出警告或失败.但对于ANSI C和尺寸感知,这是正确的做法吗?我希望这些代码可以在每个平台上运行,包括非Unix和嵌入式系统.
":> file"和"> file"之间有什么区别吗?
$ : > file.out
$ ls -l file.out
-rw-rw---- 1 user user 0 Mar 18 21:08 file.out
$ > file.out
$ ls -l file.out
-rw-rw---- 1 user user 0 Mar 18 21:08 file.out
Run Code Online (Sandbox Code Playgroud) 我正在使用thsi函数从字符串中检索不同的字符,并向它们添加5以显示相应的字符,例如.'a'显示'f'和'h'显示'm'..但问题是我无法将这些字符添加到字符串中,我可以使用它来显示像'fm'...可以任何人救命??继承人代码strResult(mutablestring)仅获得null.
str=@"John";
int a=[str length];
for(i=0;i<a;i++)
{
char ch=[str characterAtIndex:i];
ch=ch+5;
temp=[NSString stringWithFormat:@"%c",ch];
[strResult appendString:temp];
NSLog(@"%c",ch);
}
Run Code Online (Sandbox Code Playgroud) 我看到我认为Microsoft Visual Studio 2003工具输出的目标文件的奇怪行为.该file实用程序告诉我:
asmfile.obj: 80386 COFF executable not stripped - version 30821
Run Code Online (Sandbox Code Playgroud)
对于汇编程序创建的对象,但对于来自C文件的对象,我只得到:
cfile.obj: data
Run Code Online (Sandbox Code Playgroud)
使用Microsoft的dumpbin实用程序和objdump我从cygwin获得的,我可以反汇编程序集生成的文件,但是我从C-built文件的任一实用程序中都得不到有用的结果.
我有几个与这种差异有关的问题:
我对使用AT&T语法进行反汇编特别感兴趣 - 我正在做一个大型源代码库的端口以使其与GCC一起工作,我想使用此方法作为一些内联汇编例程的快捷方式.项目.
编辑:添加更多信息.
当我dumpbin在其中一个文件上运行时,没有给出任何结果:
C:\> dumpbin /disasm Func.obj
Microsoft (R) COFF/PE Dumper Version 7.10.6030
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file Func.obj
FileType: ANONYMOUS OBJECT
Run Code Online (Sandbox Code Playgroud)
有objdump,它给出:
$ objdump -d Func.obj
objdump: Func.obj: File truncated
Run Code Online (Sandbox Code Playgroud)
关于从汇编构建的文件,我得到了合理的结果.
再次编辑:添加命令行信息.
汇编文件使用类似于以下内容的命令行构建:
ml -nologo -W3 -WX -c -coff -FoAssemblyFile.obj -Zi -Cx …Run Code Online (Sandbox Code Playgroud) 我尝试使用tilde获取int的MAX值.但是输出不是我所期望的.当我运行这个:
#include <stdio.h>
#include <limits.h>
int main(){
int a=0;
a=~a;
printf("\nMax value: %d",-a);
printf("\nMax value: %d",INT_MAX);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我得到输出:
最大值:1
最大值:2147483647
我想,(例如)如果我在RAM中有0000(我知道第一位显示的是数字pozitiv或negativ).在~ 0000 => 1111之后和 - (1111)=> 0111之后,我将获得MAX值.
我正在寻找一个落在主窗口前面的"下拉"视图.例如,当您在"系统偏好设置" - >"网络"中单击"高级"时,窗口会下降.
如果有人可以指出我在文档方面的正确方向,这将是伟大的.提前致谢.
我有一个getcwd()用于获取当前工作目录的构建系统工具.这很好,除了有时人们的路径中有空格,构建系统不支持.你认为你可以只做一个符号链接:
ln -s "Directory With Spaces" DirectoryWithoutSpaces
Run Code Online (Sandbox Code Playgroud)
然后开心.但不幸的是,对我来说,getcwd()解决了所有的符号链接.我尝试使用getenv("PWD"),但它没有指向我回来的路径getcwd().我认为我责备make -C不更新环境变量.现在,getcwd()给我一条这样的道路:
/Users/carl/Directory With Spaces/Some/Other/Directories
Run Code Online (Sandbox Code Playgroud)
并getenv("PWD")告诉我:
/Users/carl/DirectoryWithoutSpaces
Run Code Online (Sandbox Code Playgroud)
那么 - 是否有任何类似的功能getcwd()无法解析符号链接?
编辑:
我变了
make -C Some/Other/Directories
Run Code Online (Sandbox Code Playgroud)
至
cd Some/Other/Directories ; make
Run Code Online (Sandbox Code Playgroud)
然后getenv("PWD")工作..如果没有其他解决方案,我可以使用它.
我们知道.bss包含未初始化的变量.如果在c代码中,程序员在使用它们之前初始化变量.然后.bss在执行C代码之前不必为零.
我对吗?
谢谢
我在试卷中遇到了这个问题.它说,哪种给定的寻址模式更快?为什么?
现在根据我的寄存器寻址模式应该更快,因为寄存器是计算机中最快的存储位置.这是正确答案吗?
请帮忙.谢谢
如果我的一个命令行说:
jmp *0x804a180(,%eax,4)
Run Code Online (Sandbox Code Playgroud)
那是什么意思?我特别要求,因为在第一个逗号之前没有值,我不确定地址前的*是什么意思.