开始写代码,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

 

 

 

开始写代码STEP_5

%{#include "attr_type.h"#include "token_type.h"#include "memory.h"#include "symtab.h"extern int Sour...
  • Last_Impression
  • Last_Impression
  • 2007年10月17日 09:07
  • 774

开始写代码了

进实验室都快一周了。这个项目也开始写代码了。昨天晚上写完了 漏洞报告的解析。今天开始写win下面的代理。...
  • zzm7000
  • zzm7000
  • 2006年03月21日 19:00
  • 883

开始写代码STEP_4

  #ifndef _DECLARATION_H#define _DECLARATION_H#include "Vector.h"#include stdio.h>#include "Stmt.h"#...
  • Last_Impression
  • Last_Impression
  • 2007年09月29日 11:24
  • 601

开始写代码STEP_3

#ifndef STMT__H_#define STMT__H_#include stdio.h>#include "Vector.h"#include "Expression.h"#include ...
  • Last_Impression
  • Last_Impression
  • 2007年09月28日 17:04
  • 559

开始写代码STEP_6

%{#include #include #include "attr_type.h"#include "token_type.h"#include "vhdlparser.tab.h"/* VHDLソ...
  • Last_Impression
  • Last_Impression
  • 2007年10月17日 09:09
  • 566

开始潜心写代码

        大一,大二已经过了。现在大三又是学习的时候了,少参加一些活动。把精力集中在基础的学习上吧,C专家编程,C编程语言,C陷阱与缺陷,数据结构,设计模式。 ...
  • hejia12
  • hejia12
  • 2007年11月09日 20:11
  • 155

开始写代码 STEP_2

#include "PrimaryExpression.h"static const CPrimaryExpression_VMT vmt = ...{ CPrimaryExpression_Gene...
  • Last_Impression
  • Last_Impression
  • 2007年09月27日 13:55
  • 584

第一次用需求思路步骤的方式写代码,记录下,我的一个新的起点,思维又一次转变

/* 需求:某个公司采用公用电话传递数据信息,数据是小于8位的整数, 为了确保安全,在传递过程中需要加密,加密规则如下: 首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后...
  • u013357243
  • u013357243
  • 2014年02月17日 13:25
  • 1217

MFC的代码是从哪里开始的?

                   Win32程序是从WinMain开始执行的,但是MFC把WinMain给封装了,不会出现在你的代码里面,他已经编译到mfc80.dll了(VS2005)了。...
  • u010408141
  • u010408141
  • 2014年02月27日 15:28
  • 905

第一篇博客——从《第一行代码》学习笔记开始

第一篇博客——从《第一行代码》学习笔记开始。这是我人生的第一次写博客的体验,感觉有些兴奋。因为最近在自学Android开发,看到刚哥的“Android学习路线指南”,让我觉得写博客是一种很有效的学习方...
  • In_Change
  • In_Change
  • 2017年05月02日 15:40
  • 242
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开始写代码,STEP_1
举报原因:
原因补充:

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