|
@@ -2,6 +2,7 @@
|
|
|
#ifndef __BASICTEST_CPP__
|
|
|
#define __BASICTEST_CPP__
|
|
|
#include <iostream>
|
|
|
+#include <iomanip>
|
|
|
#include <stdio.h>
|
|
|
#include <string.h>
|
|
|
#include <stdlib.h>
|
|
@@ -19,69 +20,119 @@ void _assert(char * cond, char *fname, long lineno){
|
|
|
abort();
|
|
|
}
|
|
|
|
|
|
-int main(){
|
|
|
- int mmm = 10;
|
|
|
- assert((mmm<11));
|
|
|
- int a[] = {0,1,2,3,4};
|
|
|
- // traverse
|
|
|
- size_t n = sizeof a / sizeof a[0];
|
|
|
- for (size_t i = 0; i < n; i++)
|
|
|
+bool GetMemory(char **p)
|
|
|
+{
|
|
|
+ *p = (char *)malloc(20);
|
|
|
+ if(*p == NULL) return false;
|
|
|
+ else return true;
|
|
|
+}
|
|
|
+
|
|
|
+void Test1(void)
|
|
|
+{
|
|
|
+ char *str = NULL;
|
|
|
+ GetMemory(&str);
|
|
|
+ strcpy(str, "hello world\n");
|
|
|
+ printf("%s",str);
|
|
|
+ free(str);
|
|
|
+ if (str != NULL)
|
|
|
{
|
|
|
- std::cout<<a[i]<<' ';
|
|
|
+ str = NULL;
|
|
|
}
|
|
|
- std::cout<<std::endl;
|
|
|
+}
|
|
|
|
|
|
- //pointer
|
|
|
- int *ppp = a+n-1;
|
|
|
- // inverse traverse
|
|
|
- while(ppp>=a){
|
|
|
- std::cout << *ppp--<<' ';
|
|
|
- }
|
|
|
- std::cout<<std::endl;
|
|
|
- ppp = a+n-1;
|
|
|
- for (size_t i = 0; i < n; i++)
|
|
|
- {
|
|
|
- std::cout << ppp[-i]<<' ';
|
|
|
- }
|
|
|
- std::cout<<std::endl;
|
|
|
+char * GetString()
|
|
|
+{
|
|
|
+ char *p = "hello world\n";
|
|
|
+ return p;
|
|
|
+}
|
|
|
|
|
|
- //test 2.2
|
|
|
- char s[] = "desolate", *p = s;
|
|
|
- std::cout<<*p++<<std::endl;//d
|
|
|
- std::cout<<*p<<std::endl;//e
|
|
|
- std::cout<<*(p++)<<std::endl;//e
|
|
|
- std::cout<<*p<<std::endl;//s
|
|
|
- std::cout<<(*p)++<<std::endl;//s
|
|
|
- std::cout<<*p<<std::endl;//t
|
|
|
- std::cout<<*++p<<std::endl;//o
|
|
|
- std::cout<<*p<<std::endl;//o
|
|
|
- std::cout<<*(++p)<<std::endl;//l
|
|
|
- std::cout<<*p<<std::endl;//l
|
|
|
- std::cout<<++*p<<std::endl;//m
|
|
|
- std::cout<<++(*p)<<std::endl;//n
|
|
|
- std::cout<<strcmp(s, "detonate")<<std::endl;//0
|
|
|
+void Test5(){
|
|
|
+ char *str = NULL;
|
|
|
+ str = GetString();
|
|
|
+ std::cout<<str<<std::endl;
|
|
|
+}
|
|
|
+
|
|
|
+int main(){
|
|
|
+ { // origin
|
|
|
+ int mmm = 10;
|
|
|
+ assert((mmm < 11));
|
|
|
+ int a[] = {0, 1, 2, 3, 4};
|
|
|
+ // traverse
|
|
|
+ size_t n = sizeof a / sizeof a[0];
|
|
|
+ for (size_t i = 0; i < n; i++)
|
|
|
+ {
|
|
|
+ std::cout << a[i] << ' ';
|
|
|
+ }
|
|
|
+ std::cout << std::endl;
|
|
|
+
|
|
|
+ //pointer
|
|
|
+ int *ppp = a + n - 1;
|
|
|
+ // inverse traverse
|
|
|
+ while (ppp >= a)
|
|
|
+ {
|
|
|
+ std::cout << *ppp-- << ' ';
|
|
|
+ }
|
|
|
+ std::cout << std::endl;
|
|
|
+ ppp = a + n - 1;
|
|
|
+ for (size_t i = 0; i < n; i++)
|
|
|
+ {
|
|
|
+ std::cout << ppp[-i] << ' ';
|
|
|
+ }
|
|
|
+ std::cout << std::endl;
|
|
|
|
|
|
- int arr[][2][3] = {{{0,1},{2,3}},{{4,5},{6,7}},{{8,9},{10,11}}};
|
|
|
- int (*par)[2][3] = arr;
|
|
|
- void *vp;
|
|
|
- std::cout<<sizeof par<<' '<<sizeof vp<<std::endl;//8
|
|
|
- vp = (char *)arr[0][0];
|
|
|
- std::cout<<sizeof (*par) <<std::endl;//24
|
|
|
- std::cout<<sizeof vp<<std::endl;//8
|
|
|
+ //test 2.2
|
|
|
+ char s[] = "desolate", *p = s;
|
|
|
+ std::cout << *p++ << std::endl; //d
|
|
|
+ std::cout << *p << std::endl; //e
|
|
|
+ std::cout << *(p++) << std::endl; //e
|
|
|
+ std::cout << *p << std::endl; //s
|
|
|
+ std::cout << (*p)++ << std::endl; //s
|
|
|
+ std::cout << *p << std::endl; //t
|
|
|
+ std::cout << *++p << std::endl; //o
|
|
|
+ std::cout << *p << std::endl; //o
|
|
|
+ std::cout << *(++p) << std::endl; //l
|
|
|
+ std::cout << *p << std::endl; //l
|
|
|
+ std::cout << ++*p << std::endl; //m
|
|
|
+ std::cout << ++(*p) << std::endl; //n
|
|
|
+ std::cout << strcmp(s, "detonate") << std::endl; //0
|
|
|
|
|
|
+ int arr[][2][3] = {{{0, 1}, {2, 3}}, {{4, 5}, {6, 7}}, {{8, 9}, {10, 11}}};
|
|
|
+ int(*par)[2][3] = arr;
|
|
|
+ void *vp;
|
|
|
+ std::cout << sizeof par << ' ' << sizeof vp << std::endl; //8
|
|
|
+ vp = (char *)arr[0][0];
|
|
|
+ std::cout << sizeof(*par) << std::endl; //24
|
|
|
+ std::cout << sizeof vp << std::endl; //8
|
|
|
|
|
|
- std::cout<<"__DATE__: "<<__DATE__<<std::endl;
|
|
|
- std::cout<<"__FILE__: "<<__FILE__<<std::endl;
|
|
|
- std::cout<<"__LINE__: "<<__LINE__<<std::endl;
|
|
|
- std::cout<<"__TIME__: "<<__TIME__<<std::endl;
|
|
|
+ std::cout << "__DATE__: " << __DATE__ << std::endl;
|
|
|
+ std::cout << "__FILE__: " << __FILE__ << std::endl;
|
|
|
+ std::cout << "__LINE__: " << __LINE__ << std::endl;
|
|
|
+ std::cout << "__TIME__: " << __TIME__ << std::endl;
|
|
|
|
|
|
- int x = 66, x1=12;
|
|
|
- trace(x, c);
|
|
|
- trace2(1);
|
|
|
- std::cout<<int(-2.5)<<std::endl;
|
|
|
- //std::cout.setf(std::ios::hex, std::ios::basefield);
|
|
|
- std::cout<< atan2(sin(1.58),cos(1.58))<<std::endl;
|
|
|
- std::cout<< atan2(sin(-1.58),cos(-1.58))<<std::endl;
|
|
|
+ int x = 66, x1 = 12;
|
|
|
+ trace(x, c);
|
|
|
+ trace2(1);
|
|
|
+ std::cout << int(-2.5) << std::endl;
|
|
|
+ //std::cout.setf(std::ios::hex, std::ios::basefield);
|
|
|
+ std::cout << atan2(sin(1.58), cos(1.58)) << std::endl;
|
|
|
+ std::cout << atan2(sin(-1.58), cos(-1.58)) << std::endl;
|
|
|
+ }
|
|
|
+
|
|
|
+ // int => char[3] char[2] char[1] char[0]
|
|
|
+ union {
|
|
|
+ int test;
|
|
|
+ char c[3];
|
|
|
+ };
|
|
|
+ c[0] = 'a';
|
|
|
+ c[1] = 'b';
|
|
|
+ test = 5;
|
|
|
+ c[2] = 'c';
|
|
|
+ // 6488069(dec)=>0c05=>630005(hex)
|
|
|
+ std::cout << "" << std::dec << test << std::endl;
|
|
|
+ Test1();
|
|
|
+ Test5();
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+
|
|
|
#endif
|