C 调试代码

原创 2012年03月28日 15:02:34
// test.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include<math.h>
#include<ctype.h>
#include<stdio.h>
#include <stdlib.h>


#include "FileTest.h"
//#include "FileTest.cpp"
 
typedef enum
{
MONDAY=1,
Thusday=2,
wesday=3,
Thusdday=4,
Mayday=5,
Satusday=6,
Sunday=7,
}Week_enum;

Week_enum Week;

 
Week_enum fun()
{
	return MONDAY;
}

//int i;
extern int i;

typedef struct
{
 unsigned char b[3];
}AType;



#include <stdio.h>
#include <string.h>
 #include<tchar.h>

/*


void fun(char str[])
{
	str++;
	str[0]='6';
}

char add()
{
	printf("add\n");
	return 0;
}
char multiply()
{
	printf("multiply\n");\
	return 0;
}
typedef int (*callback)(void *value1,void *value2);

int CmpMain(void *value1,void *value2,callback fun)
{
	if (fun(value1,value2)==0)
	{
		return 0;
	}
	else
	{
		return -1;
	}
}

int CmpInt(void *value1,void *value2)
{
	if (*((int *)value1)==*((int *)value2))
	{
		printf("0");
		return 0;
	}
	else
	{
		printf("1");
		return -1;
	}
}
*/
#if 0
#define QUEUE_SIZE 3		//队列的大小

typedef struct
{
	int Queue[QUEUE_SIZE];	
	int Rd;					//读位置
	int Wr;					//写位置
}QueueType;
static QueueType tQueue;	//定义队列


int QueueIsEmpty();
int QueueIsFull();


/**
* @brief		队列初始化
* @param[in]	*pTmp:队列数据
* @param[out]	NO
* @return		NO
* @note 
*/
void QueueInit(QueueType *pTmp)
{
	memset(&tQueue,0,sizeof(QueueType));
}
/**
* @brief		从队列中读出一个元素
* @param[in]	NO
* @param[out]	*p:读出的元素
* @return		0:OK
				-1:队列已空,读取失败
* @note 
*/
int QueueRd(int *p)
{
	if (QueueIsEmpty()==-1)
	{
		
		tQueue.Rd  =(tQueue.Rd+1)%QUEUE_SIZE;//首尾相接
		*p =tQueue.Queue[tQueue.Rd];
		return 0;
	}
	else
	{
		return -1;
	}
}
/**
* @brief		向队列写入一个元素
* @param[in]	Value:写入的元素
* @param[out]	NO
* @return		0:OK
				-1:队列已满,写入失败
* @note 
*/
int QueueWr(int Value)
{
	if (QueueIsFull()==-1)
	{
		
		tQueue.Wr  =(tQueue.Wr+1)%QUEUE_SIZE;//首尾相接
		tQueue.Queue[tQueue.Wr] =Value;
		return 0;
	}
	else
	{
		return -1;
	}
}
/**
* @brief		判断队列是否是满的
* @param[in]	NO
* @param[out]	NO
* @return		0:队列已满
				-1:队列非满
* @note 
*/
int QueueIsFull()
{
	if (   ((tQueue.Rd==0) && (tQueue.Wr+1==QUEUE_SIZE))
		|| (tQueue.Rd-tQueue.Wr==1)
		)
	{
		return 0;
	}
	else
	{
		return -1;
	}
}
/**
* @brief		判断队列是否是空的
* @param[in]	NO
* @param[out]	NO
* @return		0:队列已空
				-1:队列非空
* @note 
*/
int QueueIsEmpty()
{
	if (tQueue.Rd == tQueue.Wr)
	{
		//已空
		return 0;
	}
	else
	{
		return -1;
	}
}
#endif


typedef enum
{
	A=0,
	B=1,
	C=2,
	D=3,
	E=4,
	F=5
}EgList;

typedef struct _chain
{
	int			  value;
	struct _chain *next;
}ChainType;

ChainType *Root,*Item;

int write(int tmp)
{
	ChainType *pTmp;
	
	pTmp =(ChainType *)malloc( sizeof(ChainType) );
	if (pTmp==NULL)
	{
		return -1;
	}
	else
	{
		memset(pTmp,0,sizeof(ChainType));
		if( Item==NULL )
		{
			//首个元素
			Root =pTmp;
			Item =Root;
		}
		else
		{
			Item->next =pTmp;
			Item =Item->next;
		}
		Item->value =tmp;
		return 0;
	}
}

void chain_free(ChainType *pRpotTmp)
{
	ChainType *pTmp,*pItem;
	pItem =pRpotTmp;
	while(pItem!=NULL)
	{
		pTmp =pItem->next;
		free(pItem);
		pItem =pTmp;
	}
}

#if 1
void main()
{
	
	int i;

	for (i=0;i<5;i++)
	{
		if( write(i)!=0 )
		{
			while(1);
		}
	}

	chain_free(Root);
	while(1);



#if 0
	EgList temp;
	temp  =5;

	printf("%d",temp);
#endif

#if 0
	int d=-8;
	printf("%d",d);
#endif
#if 0
	int i=0,tmp,*p;

	p =&tmp;
	QueueInit(&tQueue);

	while(1)
	{
		QueueWr(++i);
		QueueRd(p);
	}
#endif
	/*int a=10,b=2;
	CmpMain(&a,&b,CmpInt);*/

	/*char (*qw[4][4])()={add,multiply};
	(**qw)();
	(*(*qw+1))();

	char **************ppp;*/

	/*char str1[]="abcd";
	char *str2="abcd";

	int a=sizeof(str1);
	int b=sizeof(str2);

	fun(str1);

	printf("23");*/
/*
#if 0
AType a ;
AType *p=&a;
int c,d;
c =sizeof(p->b);
d =sizeof(c);
unsigned char *e,r[8];

 
/ *unsigned char buffer[5][8];
a =sizeof(buffer[5]);* /


tSaveRecordType dd;

c =0;
c+=sizeof(tSaveRecordType);
 



int *ads;
ads +=1;

ads =0;
ads =(int *)((char *)ads +1);

printf("len is %d\n",c);
printf("len is %d\n",d);






 
/ *


 
	Week =fun();
	 
	 
 
#if 0
i=random(20);
printf("%d",i);
#endif* /

#endif


#if 1
int add;

FILE *input;
input =_tfopen("a.txt" ,"rb");

if (input==NULL)
{
	printf("error");
}
else
{
 
	printf("start\n");
 
}
#endif






	printf("df");

*/

}

#endif

如何在VS2010中调试c代码

对于很多c语言的初学者来说,如何使用微软公司的VS2010来调试程序很重要,而我也是刚刚开始使用VS2010,感觉它要比VC++6.0智能很多,使程序员更加方便。下面我就简单介绍一下如何建立一个c程序...
  • leaderone23
  • leaderone23
  • 2012年08月21日 10:59
  • 3631

在Matlab下利用VS调试C/C++代码

在Matlab下有时需要调试C/C++代码,如在Matlab下经常调用的支持向量机(SVM)库libsvm就是用C语言编写的,如果想在Matlab下调试C代码,查看中间输出,可以利用VS。这主要涉及C...
  • u011501388
  • u011501388
  • 2017年11月08日 21:47
  • 101

C/C++代码调试的几点建议

1.代码调试的重要性代码调试在程序开发阶段占有举足轻重的地位,可见代码调试的重要性。但是有一点必须强调:程序是设计出来的,而不是调试出来的。这是所有程序员必须牢记在心的一条准则。一个没有设计或者这几得...
  • K346K346
  • K346K346
  • 2015年12月04日 10:27
  • 2470

matlab借助vs调试C程序

有些时候调用matlab的工程时,为了更方便的理解代码,就stepbystep得跟进程序里面去,但是碰到里面调用的c的库就跟不进去了,有很多文章都告诉我们怎么去写matlab能调用的mexfuncti...
  • ayw_hehe
  • ayw_hehe
  • 2011年09月19日 15:16
  • 4052

linux下c程序调试

使用GCC编译器对c程序进行编译。 先用vim写一个简单的c程序 命名为a.c(此次的后缀名如果不是.c的话还需要另一个处理参数,后边会说) 打开终端进入a.c所在目录 1. 首先将代码编译成可...
  • WitsMakeMen
  • WitsMakeMen
  • 2013年12月29日 22:29
  • 5886

eclipse调试C/C++代码 环境搭建

在利用C++进行跨平台游戏开发中(例如:cocos2dx),根据各个平台的特殊性,有时候会出现一个平台运行ok,但换了安卓却不能正常运行,这不是吐槽安卓,真实的情况就是这样,崩溃了却无法准确定位崩溃代...
  • doller999
  • doller999
  • 2014年03月31日 13:54
  • 1033

Android GDB 调试C/C++代码环境搭建

很多时候,我们想要调试Android 层的C/C++
  • lghlcl
  • lghlcl
  • 2014年06月19日 09:18
  • 834

GDB在线调试Android Framework Native C/C++代码

一、准备工作1、下载并编译Android系统源码这里比较灵活,可以下载公司内部机型的代码,也可以下载原生AOSP的代码环境配置参考 https://source.android.com/sourc...
  • songjinshi
  • songjinshi
  • 2016年11月03日 13:28
  • 1953

android studio调试c++代码

android studio调试c/c++代码 一、Debug调试效果 DEBUG.png 二、配置JNI调试环境 2.1 配置build.grad...
  • hhh901119
  • hhh901119
  • 2016年11月02日 15:27
  • 3137

Bochs + GDB 源码级调试C语言内核

Ubuntu 14.04 64bit Bochs 2.6.6 GDB 7.7 想要源码级调试C内核,需要在编译Bochs时加上 --enable-gdb-stub 参数 sud...
  • u013175644
  • u013175644
  • 2014年08月20日 08:48
  • 1382
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C 调试代码
举报原因:
原因补充:

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