摘要: 一般高级语言程序编译的过程:预处理、编译、汇编、链接。gcc在后台实际上也经历了这几个过程,我们可以通过-v参数查看它的编译细节,如果想看某个具体的编译过程,则可以分别使用-E,-S,-c和-O,对应的后台工具则分别为cpp,cc1,as,ld。下面我们将逐步分析这几个过程以及相关的内容,诸如语法检查、代码调试、汇编语言等。1、预处理预处理是C语言程序从源代码变成可执行程序的第一步,主要是C语言编译器对各种预处理命令进行处理,包括头文件的包含、宏定义的扩展、条件编译的选择等。打印出预处理之后的结果:gcc-Ehello.c或者cpphello.c这样我们就可以看到源代码中的各种预处理命令是如. 阅读全文
posted @ 2012-07-10 00:56 pipicfan 阅读(28113) 评论(1) 推荐(3) 编辑
摘要: 编辑器加载中..1. 代码只占生意的5% 我见到的最多、最严重的问题就是开发者被代码绑架,花费数不清的时间让一个功能变得完美,或者炫耀最新的技术。是的,你的代码必须高质量,并且没有严重的 bug 和安全问题。但是你要记住,再好的代码如果没有人用的话都是垃圾。当税务局过来封门查税的时候,你会发现代码是没有用的,当你收到法院关于知识产权官司传票的时候,你会发现代码是没有用的。 我看到太多创业者在论坛、博客中讨论代码的问题,而不是商业的问题。当然讨论商业的问题更让人头疼,那么谁让你要创业的呢? 2. 界面很重要,特别是和竞争对手相比 你的产品界面必须做好!标准的灰色的背景和方框控件是不够的。但是你也 阅读全文
posted @ 2012-07-07 01:23 pipicfan 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 1.数据库回滚操作sql语句2.输出下面程序的运行结果View Code 1 #include <stdio.h> 2 3 int main() { 4 5 struct aa { int a; int b; }aa; 6 7 union bb { int a; int b; }bb; 8 9 aa.a = 1; aa.b = 2;10 11 bb.a= 3; bb.b = 5;12 13 printf("%d %d\n",aa.a,aa.b);14 15 printf("%d %d\n",bb.a,bb.b);16 17 return 0; 阅读全文
posted @ 2012-07-04 23:48 pipicfan 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 最近在复习c++的一些基础,感觉这篇文章很不错,转载来,大家看看!类所占内存的大小是由成员变量(静态变量除外)决定的,成员函数(这是笼统的说,后面会细说)是不计算在内的。摘抄部分:成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是一个table,table里面记录的各个成员函数的地址(当然不同的编译可能略有不同的实现)。所以我们访问成员函数是间接获得地址的。所以这样也就增加了一定的时间开销 阅读全文
posted @ 2012-06-20 14:40 pipicfan 阅读(4490) 评论(0) 推荐(2) 编辑
摘要: 最近完成一个j2ee的网站项目, 遇到了下面这个问题写一个登录类,保存登录用户的session 用户, 密码package com.tyland.action;import java.sql.Array;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.hibernate.Query;import org.hibernate.SessionFactory;import org.hibernate.classic.Session;import com.opensymphony.xwor 阅读全文
posted @ 2012-06-12 17:36 pipicfan 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 经常看一些c++的书有这一句每个c++类都有构造函数,只是很多没写,是被编译器隐藏啦!我表示对这句话的怀疑,于是有了下面的例子#include <iostream>#include <windows.h> using namespace std; class CInit{int m_nNumber; public:void SetNumber(int nNumber){m_nNumber = nNumber;} int GetNumber(){return m_nNumber;} }; int main() { CInit Init; Init.SetNumber(5) 阅读全文
posted @ 2012-06-02 20:22 pipicfan 阅读(931) 评论(0) 推荐(0) 编辑
摘要: 感觉写的太水啦。。。。修改中!! 阅读全文
posted @ 2012-05-07 02:40 pipicfan 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 编辑器加载中... #include #include <windows.h> #include using namespace std; int main(int argc, char* argv[]) { set ss; char name[MAX_PATH] = {"abcd"}; char *p = "abcd"; ss.insert((LPSTR)name); int n = ss.find(p)!=ss.end(); if(n) { cout<<"set 集合中存在这项"<<endl; 阅读全文
posted @ 2012-05-03 01:38 pipicfan 阅读(135) 评论(0) 推荐(0) 编辑
摘要: cygwin下载地址:http://cygwin.com/setup.exe安装ssh:搜索ssh,选择opensshserver安装安装好后,运行cygwin输入ssh-host-config进行配置一路输入yes回车随便输个名字登录用的用户名完成后输入netstartsshd启动服务 阅读全文
posted @ 2012-05-02 21:45 pipicfan 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 考虑问题的顺序测试demo项目是否可行编写项目文档 阅读全文
posted @ 2012-02-14 18:01 pipicfan 阅读(151) 评论(0) 推荐(0) 编辑