开始写代码,STEP_1

原创 2007年09月21日 15:11:00
#include "Vector.h"

void Vector_Initialize(Vector* this)
...{
    
this->count = 0;
}


void add(Vector* thisvoid* obj)
...{
    
this->obj[this->count] = obj;
    
this->count++;
}


int size(Vector* this)
...{
    
return this->count;
}


void* elementAt(Vector* thisint pos)
...{
    
return this->obj[pos];
}


void addVector(Vector* thisvoid* data)
...{
    
int i;
    
    
for(i = 0;i<size(data);i++)...{
        add(
this,elementAt(data,i));
    }

}

 

 

#ifndef VECTOR_H__
#define VECTOR_H__

#define VECTOR_MAX  256

typedef 
struct...{
    
void* obj[VECTOR_MAX];
    
int   count;
}
Vector;

void Vector_Initialize(Vector* this);

void add(Vector* thisvoid* obj);

int size(Vector* this);

void* elementAt(Vector* thisint pos);

void addVector(Vector* thisvoid* data);
#endif

 

 

#include "Numeric.h"

static const CNumeric_VMT vmt = ...{CNumeric_Generate};

void CNumeric_Initialize(CNumeric* thisint val)
...{
    ((CExpression
*)this)->vmt = (const CExpression_VMT*)&vmt;
    
this->value = val;
}


void CNumeric_Generate(CNumeric* this, FILE* output)
...{
    fprintf(output, 
"%d"this->value);
}

 

 

#ifndef NUMERIC__H_
#define NUMERIC__H_
#include 
"Expression.h"
#include 
<stdio.h>

typedef 
struct Numeric_t CNumeric;

typedef 
struct...{
    
void (*generate)(CNumeric*, FILE*);
}
CNumeric_VMT;

struct Numeric_t...{
     CExpression super;
     
int value;
}
;

extern void CNumeric_Initialize(CNumeric*int);
extern void CNumeric_Generate(CNumeric*, FILE*);

#endif

 

#include "PrimaryExpression.h"

static const CPrimaryExpression_VMT vmt = ...{ CPrimaryExpression_Generate };

void CPrimaryExpression_Initialize(CPrimaryExpression* this)
...{
    CExpression_Initialize((CExpression
*)this);
    ((CExpression
*)this)->vmt = (const CExpression_VMT*)&vmt;
}

void CPrimaryExpression_Generate(CPrimaryExpression* this, FILE* output)
...{
    
}

 

 

#ifndef _PRIMARY_EXPRESSION_H
#define _PRIMARY_EXPRESSION_H

#include 
"Expression.h"
#include 
<stdio.h>

typedef 
struct PrimaryExpression_t CPrimaryExpression;

typedef 
struct...{
  
void (*generate)(CPrimaryExpression*, FILE*);
}
CPrimaryExpression_VMT;

struct PrimaryExpression_t...{
  CExpression super;
}
;

extern void CPrimaryExpression_Initialize(CPrimaryExpression*);
extern void CPrimaryExpression_Generate(CPrimaryExpression*, FILE*);
#endif

 

 

#include "Expression.h"

static const CExpression_VMT vmt = ...{CExpression_Generate};

void CExpression_Initialize(CExpression* this)
...{
    ((CExpression
*)this)->vmt = (const CExpression_VMT*)&vmt;
}


void CExpression_Generate(CExpression *this, FILE *output)
...{

}

 

 

#ifndef EXPRESSION__H_
#define EXPRESSION__H_
#include 
<stdio.h>

typedef 
struct Expression_t CExpression;

typedef 
struct...{
    
void (*generate)(CExpression*, FILE*);    
}
CExpression_VMT;

struct Expression_t...{
    
const CExpression_VMT *vmt;
}
;

extern void CExpression_Initialize(CExpression*);

extern void CExpression_Generate(CExpression*, FILE*);

#define Expression_Generate(this, output)
            (((CExpression
*)(this))->vmt->generate((CExpression*)(this),output))
#endif

 

 

#include "FunctionCall.h"

static const CFunctionCall_VMT vmt = ...{ CFunctionCall_Generate };

void CFunctionCall_Initialize(CFunctionCall* thischar* name, Vector* parm)
...{
    CPrimaryExpression_Initialize((CPrimaryExpression
*)this);
    ((CExpression
*)this)->vmt = (const CExpression_VMT*)&vmt;
    
this->name = name;
    
this->parm = parm;
}


void CFunctionCall_Generate(CFunctionCall* this, FILE* output)
...{
    
int i;
    fprintf(output, 
"%s("this->name);
    
for(i = 0; i< size(this->parm); i++)...{
        Expression_Generate(elementAt(
this->parm, i), output);
        
if(i < size(this->parm) - 1)...{
            fprintf(output, 
",");
        }

    }

    fprintf(output, 
")");
}

 

#ifndef FUNCTIONCALL__H_
#define FUNCTIONCALL__H_

#include 
"PrimaryExpression.h"
#include 
"Vector.h"
#include 
<stdio.h>

typedef 
struct FunctionCall_t CFunctionCall;

typedef 
struct...{
    
void (*generate)(CFunctionCall*,FILE*);
}
CFunctionCall_VMT;

struct FunctionCall_t...{
    CPrimaryExpression super;
    
char* name;
    Vector 
*parm;
}
;

extern void CFunctionCall_Initialize(CFunctionCall*char*, Vector*);

extern void CFunctionCall_Generate(CFunctionCall*, FILE*);
#endif

 

 

 

gdb学习step by step lesson 1 : 显示代码内容

先贴一下我用来示范的程序,我们主要通过这段代码来step by step地学习gdb的使用.如果你想花15分钟学习,这不是你应该用的;如果你只是想对gdb有个简单的了解,这也不是你想要的; 如果你想对...

FL2440--1--自己写boot之nor代码重定向(开始)

自己写bootloader其实也不难,强烈建议,学习嵌入式不要在使用ADS编译器和keil, 它对学习arm没有任何好处,建议在Linux下使用arm-linux-gcc;如果你对uboot的流程 ...

MyFlag Step5:app页面初步设计与代码编写

引言 本周我们主要进行进行页面设计与代码编写,在前两天的工作中我们主要进行了以下工作: 页面的初步设计与逻辑交互设计客户端代码编写后台代码编写 页面设计与逻辑交互设计 前两天的工作中,页面部...

MyFlag Step11:后台代码编写、客户端具体功能实现与界面优化

引言 在这半周的工作中,我们小组仍然主要进行后台和客户端的代码编写工作,具体内容如下: 一、客户端界面编写 在这半周中,客户端主要实现了两个功能,修改密码...

MyFlag Step12:后台代码编写、客户端具体功能实现以及界面优化

一、界面编写

MyFlag Step12:后台代码编写、客户端具体功能实现与界面优化

123

MyFlag Step6:app详细页面设计与代码编写

引言前一阶段,我们详细探讨了界面的初步逻辑关系,并且根据图示显而易见的找到了几个比较重要的路由节点,前一段时间的必备界面的粗框架设计的完成,使我我们这一阶段将要对那些条件关系简单,逻辑简单而且界面数据...
  • DearMa
  • DearMa
  • 2017年05月22日 10:12
  • 388

MyFlag Step5:app页面初步设计与代码编写

引言本周我们主要进行进行页面设计与代码编写,在前两天的工作中我们主要进行了以下工作:页面的初步设计与逻辑交互设计 客户端代码编写 后台代码编写 针对我的工作,主要是将显而易见一定会有的界面做出来之后,...
  • DearMa
  • DearMa
  • 2017年05月21日 23:56
  • 93

MyFlag Step10:后台代码解耦与客户端具体功能设计

引言本周恰巧是开发周期的中期,我们按部就班有条不紊的按照原计划进行开发,这一阶段我们主要的任务有以下几个方面: DAO层的代码重写与解耦 评论功能+我的消息 我的主要功能工作就是与客户端的开发人员及时...
  • DearMa
  • DearMa
  • 2017年06月04日 22:16
  • 84
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开始写代码,STEP_1
举报原因:
原因补充:

(最多只允许输入30个字)