⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 cygwin下的包含各种c基本操作的demo程序
💻 C
字号:
#define _TEST_C_#include <stdio.h>#include "my_common.h"#include "test.h"/*void exam_assert( char * file_name, unsigned int line_no )
{
    printf( "\n[EXAM]Assert failed: %s, line %u\n", 
            file_name, line_no );
    abort( );
}*/void exam_assert(char* con, char* file_name, unsigned int line_no )
{
    printf( "\n[EXAM]Asserted (%s) failed: %s, line %u\n", con,
            file_name, line_no );
    abort( );
}
/*
#define  EXAM_ASSERT( condition ) if (condition) NULL; else   exam_assert( __FILE__, __LINE__ )      
 /*   if (condition) // 若条件成立,则无动作
        NULL;
    else  // 否则报告
   */   //struct list;struct link{       struct link *pre;       struct link *suc;       struct list *member_of;//没有list的定义都可以编译通过?被优化了?  }link_array[2];struct link *plink=link_array;/*struct list{       link* head;};*/struct sub_str_test;typedef struct str_test{       int a;       char b;       char *p ;       struct sub_str_test *pp;} str_test_t  ;struct sub_str_test{       int d;       str_test_t *ppp;};str_test_t a_str_test;//={11,22} ;str_test_t *p_str_test=&a_str_test;//p_str_test = (str_test_t *)&a_str_test;//struct str_test *p_str_test=&a_str_test;//p_str_test ->a = 1111;//p_str_test ->b = 11;void	main(void){	int cycle_count = 10;	int ii=0,jj=0,nn=0;	int * i_pointer=NULL;	char * ch_pointer=NULL;	char *ch_pointer1=NULL ;	int i_array[6]={1,2,3,4,5};		char *fo_char;		unsigned char sign_test_u = -1;//good	unsigned char sign_test_s = 'a';//sign_test_u ;		char ch_from[]="I am a student!";//字符数组的成员可以修改 \	它定义的是一系列它的成员,而不是指针,但可以通过指针调用它。\	它的成员处在栈内,在本函数结束后被释放。	//char ch_to[]="I am a teacher!";	//char ch_to[10]={"J"};//不能不声名长度又不赋值的初始化-char ch_to[];如果不声名长度的初始化 \	容易出现溢出,程序只分配初始化个变量的内存。	char ch_to[][10]={{"J"},{"N"}};	char *ch_pointer2="u are stupid!";//ch_pointer2 指向常量字符串,不能通过ch_pointer \	修改它的成员值 如ch_pointer2[0]='i'。就是说这里只定义了一个指针\	不是它的值,该字符串处在全局变量区(.data),但不可以修改。(对于intel cpu如此,coldfire则可以)	//*ch_to='U';		EXAM_ASSERT(1);		sign_test_u += sign_test_s;		ch_to[0][0]='J';	//J在代码段(.text)	ch_to[0][1]='j';	ch_to[0][2]='Y';	ch_to[0][3]='y';		ch_to[1][0]='N';	ch_to[1][1]='u';	ch_to[1][2]='i';	ch_to[1][3]='c';		ch_pointer1=ch_to[1];		//ch_pointer1[0]='H';	//ch_pointer1[3]='s';	//ch_pointer2[0]='Y';		//for( nn=0;nn<16;nn++)	//ch_pointer1[ii++]=ch_from[jj++];	//ch_to[ii++]=ch_from[jj++];	/*	while((ch_pointer1[ii++]=ch_from[jj++])!='\0')	      {					;      		      }	*/	ch_pointer= ch_get_pointer();	i_get_pointer(&i_pointer);		do{ printf("do.... while ; the value of \\0 is %d \n", EOF); }	while(cycle_count--) ;		p_str_test->a = 33;	p_str_test->p = p_str_test;	printf("the member of the str_test:a=%d ,b=%d,*p=%d \n" ,p_str_test->a ,p_str_test->b,*(p_str_test->p));			printf("1:%s\n", ch_pointer);	printf("2:%d\n", *i_pointer);		printf("3:%s\n", ch_pointer1);	printf("4:%s\n", ch_pointer2);	printf("5%s\n",  ch_from);	printf("6:%d\n", ch_head);	printf("7:%d\n", sign_test_s);	printf("8:%d\n", sign_test_u);		/*	fo_char = fo_test();//test the file operation 		printf("a2i(fo_char) is %d,fo_char is %s \n",a2i(fo_char),fo_char);	//contrast( a2i(fo_char) );	contrast(a2i(fo_char) );		*/  					macro_test();	test_ll();	//april();	ll_demo();//ll_fo.c	plinklist();//linklist.c		test_while();//temp.c		return ;	}char *ch_get_pointer(void){		char* p="hello,pointer!";//hello...字符串的内容不可修改		return p ;	}	void	i_get_pointer(int **p)	//need **{	static int a=10;	//ru guo bu jia static ,zhe a de zhi hui bei shi fan 										// ze **p de zhi bu que ding	static int i_array2[6]={1,2,3,4};	//*p=&a	;	*p=i_array2;	return  ;	}	void *memcpy(void * __dest, const void * __src, int __n){    int i;        if((NULL == __dest)||( NULL == __src)||(__n < 0 ) )    {    	return NULL ;    }        volatile unsigned char *d = __dest;    volatile unsigned char *s = __src;        for (i = 0; i < __n; i++ )    {       	d[i] = s[i];     }    	  return d;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -