• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
-7℃→百一的生活
记录学习过程中的点点滴滴; 记性不好,特别需要这么一个博客。 为自己也为别人! 一起分享吧!(*^__^*) 嘻嘻……
博客园    首页    新随笔    联系   管理    订阅  订阅

pascal→→c++常用基础小知识

 

d mod,/,div  ----c? % /

d round()---c?

d label---c?c中不用声明label 直接用就行了,不须声明!!

d and or not --c?算术符& | ! 逻辑运算符&& || !

d byte(pointer(stru.bitdata+stru.pos)^)----c?*((unsigned char*)(stru.bitdata+stru.pos))

  F_src :pointer      void * F_src
d,byte(F_src^);------c?*( (byte*)(F_src) )

定义类型指针:
d:
type
  Tcardpointer=^cardinal;
c:
typedef
  unsigned int *Tcardpointer;

1,c 在.h头文件声明函数参数带默认值,在.cpp实现文件就不用在带默认值了!

true=-1;false=0


2,c .h文件前向声明的变量在.cpp中还要在声明一遍,并且初始化是在.cpp文件中的(true=1,false=0)

3,c if (条件)
       (语句);    
    else
       (语句);


  c if (条件)
    {
     (语句);      
    }
    else
    {
     (语句);      
    };
注意分号···········

4,c 数组类型的结构,若作为全局变量必须在.h文件extern声明,再在.cpp文件初始化
例如:
.h:
typedef struct Tdepth
{
    int spriteindex; // -1:主场景depth/obj关系 ;>=0:子动画depth/obj关系
    unsigned short id;
    unsigned short objid;
};
extern Tdepth *depths;
extern int depths_len;

.cpp:
Tdepth *depths=NULL;
int depths_len=0;

5,d setlength(tbitarray,0);
  c free(tbitarray.data);
    tbitarray.length=0;
6,d  var CCdis_proc:procedure(F_index1,F_index2:integer);
  c  extern (void*)CCdis_proc(int F_index1,int F_index2 );
  C  extern  void *CCdis_proc(int F_index1,int F_index2 );

7,d ord('F');------c? 'F';
8,c---char*  "aaaaaaaaaa"; char 'a';

9,d: repeat ...until(条件);
  先执行语句后判断有条件,直到条件为真时结束循环;////注意条件为真时结束!!
  d:while(条件)do begin ...end;
  先判断条件再执行语句,直到条件为假时结束循环;

  c:?do {...}while(条件);
  先执行语句再判断条件,直到条件为假时结束循环;
  while{...};与d的while.. do..一样;
 
10,d 内嵌函数在c中怎么处理?用namespace 处理,如下:
●
命名空间能解决内嵌函数的问题:
命名空间定义:在.h文件里;
namespace Outer{
          int i;
          namespace Inner{
                    void f(){i++;}//命名空间Inner的内部成员f()的定义 ;其中i为Outer::i
                    int i;
                    void g(){i++;}//命名空间Inner的内部成员g()的定义 ;其中i为Inner::i
                    void h();//命名空间Inner的内部成员h()的声明
                    };
          void f();
          namespace Inner2;//错误,子命名空间不能声明只能定义
          };
void Outer::f(){i--;}//命名空间Outer的内部成员f()的外部定义 ;
void Outer::Inner::h(){i--;}//命名空间Inner的内部成员h()的外部定义;

命名空间的使用:在.cpp文件里;
using namespace Outer;
int main
{
...
Outer::i=0;
OUter::f();            //i=-1;

Outer::Inner::i:=1;
Outer::Inner::g();     //i=2;
...
};
//以上的Outer::可省;但Inner::不可省;
★★★namespace 的内部成员函数的定义都放在.cpp文件;


●
.h文件里
x.h:
namespace Outer{
      class myclass
      {
             public:
               void f();
             private:
               int i;
      };
};

y.h:
namespace Inner{
      calss myclass
      {
             public:
               void f();
             private:
               int i;
      };
};

 

.cpp文件里
#include "x.h"
#include "y.h"
int z::f()
{
Outer::myclass x;
Inner::myclass y;

   x.f();
   y.f();
};


11,数组 d a:array[0..l] of array [0..m] of array[0..n] of integer;
        c integer a[l][m][n];  m行n列
        

12,d,   vcaption:=vcaption div trunc( exp( ln(2)*(8-F_Ccaption) ) );
         vcaption:=vcaption mod trunc( exp( ln(2)*(8-F_top+1) ) );

    c,  //vcaption=vcaption / (2^(8-F_caption));
  vcaption=(unsigned char)(vcaption / pow(2, 8-F_caption));
  //vcaption=vcaption % (2^(8-F_top+1));
  vcaption=(unsigned char)(vcaption % (int)pow(2,(8-F_top+1)));

13,c:定义宏:
#define 宏名字  要被代替的名字;
使用的时间使用“宏名字”就可以了。

14,在shape_record_opt,shape_record_pos_proc有个initialization未处理!这样的情况只要把所有的变量初始化就可以;

15,d 字符串'audio\'---------------c "\audio\\"
16,d sysutils format() -------------------------c "stdio.h"sprintf();
  string s;
  s:=format(' --resample %d -b %d ',11, 16);
  showmessage(s);                               --resample 11 -b 16            

  char s[255]="";
  sprintf(s," --resample %d -b %s ",11,"16");   --resample 11 -b 16
  sprintf(s," --resample %x -b %d ",11,16);     --resample b -b 16
  cout<<s;
  cin.get();
注意:%的位置那些字符代表显示出的形式,有s,d,x,0x.....

··············································
DOS命令:
cd\
C:\>

cd\mingw
C:\Mingw>

cd\mingw\bin
C:\mingw\bin>


C:\Mingw\bin>c++ -c c:\new0322\文件名;(编译)
C:\Mingw\bin>dir ddcc.* 或  dir ddcc.o
C:\Mingw\bin>c++ *.o c:\*.cpp -o c:\aa  (全部连到一起编译)

··············································


stdio.h
int __cdecl sprintf (char*, const char*, ...);
e.g:
int main {
int a=1234;
char str[255]="";
sprintf(str,"%d",a);
cout<<str;
cin.get();
};

iostream.h
cout
cin

string.h
strcat
strcpy
strcmp
memcpy

 

 

posted @ 2009-04-11 18:47  青岛小帅哥  阅读(292)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3