易截截图软件、单文件、免安装、纯绿色、仅160KB

用GCC输出带C源代码注释的汇编列表文件

我们都知道gcc的-S开关可以用来生成汇编代码,
但有时候,单有汇编文件是不够的,我们希望的是将C语言程序的源代码和汇编语言文本交错在一起查看,
这是LISTING功能,在gcc中并没有专门的FAQ说明,
区区在网上查了很多资料才知道怎么实现,所以特此记下。
gcc -c -g -Wa,-adlhn ee.c >  ee.anno.s
由此生成的ee.anno.s即是ee.c对应的C与汇编混排的列表

又如C程序
/* EE */
#include<stdio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
int main(int argc, char **argv)
{
  char * p = "TO STDOUT";
  int ic   = (int)GetStdHandle(STD_OUTPUT_HANDLE);
  printf("%d\n", ic);
  WriteFile(ic, p, strlen(p), &ic, NULL);
  return 0;
}
可以生成
   1              
.file
"ee.c"
   4              
.text
   5              
Ltext0:
 4222              
.section .rdata,"dr"
 4223              
LC0:
 4224 0000 544F2053
.ascii "TO STDOUT\0"
 4224      54444F55 
 4224      5400
 4225              
LC1:
 4226 000a 25640A00
.ascii "%d\12\0"
 4227 000e 0000    
.text
 4231              
.globl _main
 4233              
_main:
   1:ee.c          **** /* EE */
   2:ee.c          **** #include<stdio.h>
   3:ee.c          **** #include<stdio.h>
   4:ee.c          **** #include<string.h>
   5:ee.c   &nbs


相关文档:

一道c的面试题,大数相乘

 http://www.cnblogs.com/hoodlum1980/archive/2007/08/15/857067.html
题干:输入两个较大的数,输出相乘的结果。
意思也就是两个数很大,超出了int的存储范围。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 100
void GetDigits( ......

C/C++ 字节对齐问题

VC中下面几个结构体大小分别是多少呢
struct MyStruct
{
    double m4;
    char m1;
    int m3;
};
struct MyStruct {
    char m1;
    double m4;
    int m3;
};
#pragma pack(push)   ......

C若干实用小技巧

Visual C++6.0(5.0)开发工具功能非常强大,但是对于初学者来说,却有很多细节的问题需要注意。作者搜集整理了以下一些实用小技巧,希望对初学者有所帮助。
  1:使用vc开发项目时,常会遇到这种情况:
    即明明只改动了一个文件,却要把整个项目全部重新编译连接一次。刚刚连接好,一运行,又提示 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号