C的关键字和保留标识符

下面是在UNICODE编程环境下的字符的相关操作,请切记。

很有用处的!!!!!!!

/* ++++++++++++++++++++ UNICODE ++++++++++++++++++++ */

#define _TEOF       WEOF

#define _tmain      wmain

#ifdef UNDER_CE # define _tWinMain   WinMain // On CE it's always WinMain #else # define _tWinMain   wWinMain #endif

/* Formatted i/o */ #define _tprintf    wprintf #define _ftprintf   fwprintf #define _stprintf   swprintf #define _sntprintf  _snwprintf #define _vtprintf   vwprintf #define _vftprintf  vfwprintf #define _vstprintf  vswprintf #define _vsntprintf _vsnwprintf #define _tscanf     wscanf #define _ftscanf    fwscanf #define _stscanf    swscanf

/* Unformatted i/o */ #define _fgettc     fgetwc #define _fgetts     fgetws #define _fputtc     fputwc #define _fputts     fputws #define _gettc      getwc #define _gettchar   getwchar #define _getts      _getws #define _puttc      putwc #define _puttchar   putwchar #define _putts      _putws #define _ungettc    ungetwc

// Stdio functions #define _tfopen     _wfopen #define _tfreopen   _wfreopen

/* String conversion functions */ #define _tcstod     wcstod #define _tcstol     wcstol #define _tcstoul    wcstoul

#define _itot       _itow #define _ltot       _ltow #define _ultot      _ultow #define _ttoi       _wtoi #define _ttol       _wtol #define _ttoi64     _wtoi64

/* String functions */ #define _tcscat     wcscat #define _tcschr     wcschr #define _tcscmp     wcscmp #define _tcscpy     wcscpy              /这个是将字符串1 copy 到字符串2 #define _tcscspn    wcscspn #define _tcslen     wcslen #define _tcsclen    wcslen

#define _tcsncat    wcsncat #define _tcsnccat   wcsncat #define _tcsnccmp   wcsncmp #define _tcsncmp    wcsncmp #define _tcsncpy    wcsncpy #define _tcsnccpy   wcsncpy #define _tcspbrk    wcspbrk #define _tcsrchr    wcsrchr #define _tcsspn     wcsspn #define _tcsstr     wcsstr #define _tcstok     wcstok #define _tcsdup     _wcsdup #define _tcsicmp    _wcsicmp #define _tcsncicmp  _wcsnicmp #define _tcsnicmp   _wcsnicmp #define _tcsnset    _wcsnset #define _tcsncset   _wcsnset #define _tcsrev     _wcsrev #define _tcsset     _wcsset

#define _tcslwr     _wcslwr #define _tcsupr     _wcsupr

// ctype functions #define _istalpha   iswalpha #define _istupper   iswupper #define _istlower   iswlower #define _istdigit   iswdigit #define _istxdigit  iswxdigit #define _istspace   iswspace #define _istpunct   iswpunct #define _istalnum   iswalnum #define _istprint   iswprint #define _istgraph   iswgraph #define _istcntrl   iswcntrl #define _istascii   iswascii

#define _totupper   towupper #define _totlower   towlower

#define _istlegal(_c)    (1) #define _istlead(_c)     (0) #define _istleadbyte(_c)    (0)

#else   /* ndef UNICODE */ 

实例部分用法:

void DoWithDSPFile(LPTSTR szDSPFileName) {   VC::VCProjectEnginePtr  ptrVC(__uuidof(                                 VC::VCProjectEngineObject));                                    // for project conversion   EnvDTE::ProjectItemPtr  proj;    // not used   VC::VCProjectPtr  ptrProject;    // smart ptr to project   TCHAR  szCurDir[_MAX_PATH];      // full path to current                                    // directory   _bstr_t   bstrCD;                // smart bstring version of                                    // the above   TCHAR    szVCProj[_MAX_PATH];    // full path to the new                                    // .vcproj file   _bstr_t   bstrVCProj;            // bstr version of above   TCHAR  szDSP[_MAX_PATH];         // full path to the old .dsp                                    // file to convert   TCHAR  szBareVCProj[_MAX_PATH];  // bare VCProj project name                                    // with eg myproj.vcproj   TCHAR  szSoln[_MAX_PATH];        // solution   TCHAR  szBareName[_MAX_PATH];    // solution bare name   _bstr_t   bstrBareSoln;          // bare (base) solution name   TCHAR*   p;                      // pointer to a subsbring   // grab our directory   _tgetcwd(szCurDir, _MAX_PATH);   bstrCD = szCurDir;   _tcscpy(szVCProj, szCurDir);   PathAddBackslash(szVCProj);   // add original name   _tcscat(szVCProj, szDSPFileName);   // replace extension with .vcproj   p = PathFindExtension(szVCProj);   _tcscpy(p, _T(".vcproj"));   // did we already do it?   if (PathFileExists(szVCProj))   {     // tell the user & go to next file     _ftprintf(stdout, _T("Skipping %s because already converted/n"),               szVCProj);     return;   }   // OK using smart pointers here, need try/catch   try   {     // get full path to DSP file     _tcscpy(szDSP, szCurDir);     PathAddBackslash(szDSP);     _tcscat(szDSP, szDSPFileName);     // load old dsp file     ptrProject = ptrVC->LoadProject(szDSP);       // generate name from .DSP name (same base name)     _tcscpy(szBareVCProj, szDSPFileName);     p = PathFindExtension(szBareVCProj);     _tcscpy(p, _T(".vcproj"));     // name the project as proj.vcproj     ptrProject->PutProjectFile(szBareVCProj);     // save converted project (this will create the .vcproj file     ptrProject->Save();     // need to worry about creating a solution (.sln) file.     // This was the hard part to figure out.     _tcscpy(szSoln, szDSPFileName);     p = PathFindExtension(szSoln);     _tcscpy(p, _T(".sln"));     _tgetcwd(szCurDir, _MAX_PATH);     // create empty solution     EnvDTE::_SolutionPtr ptrSoln(_T("VisualStudio.Solution.7.1"));     // get the bare name for the solution     _tcscpy(szBareName, szDSPFileName);     p = PathFindExtension(szBareName);     *p = 0;    // cut off at extension     // get a bstring     bstrBareSoln = szBareName;     // and create the empty solution     ptrSoln->Create(bstrCD, bstrBareSoln);     // get the filename of our new solution     bstrVCProj = szVCProj;     // and add it into the newly created solution, replacing     // whatever was there     ptrSoln->AddFromFile(bstrVCProj, FALSE,                         (EnvDTE::Project**)&proj);     _ftprintf(stdout, _T("Project %s converted OK/n"), szVCProj);   }   catch(...)   {     _ftprintf(stdout, _T("Something bad happened.../n"));   } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C语言和Java的标识符有以下区别: 1. 标识符命名规则不同:C语言标识符只能由字母、数字和下划线组成,而Java标识符可以使用任何Unicode字符。 2. 大小写敏感性不同:C语言标识符是大小写敏感的,而Java标识符是大小写敏感的。 3. 关键字不同:C语言和Java的关键字不完全相同,因此在命名标识符时需要注意。 4. 数据类型不同:C语言和Java的数据类型不完全相同,因此在命名变量时需要注意。 5. 类型定义不同:C语言使用typedef关键字来定义类型,而Java使用关键字class来定义类型。 总之,在使用标识符时,需要遵循各自的规则,以确保程序的正确性和可读性。 ### 回答2: C语言和Java的标识符有以下几个区别: 1. 关键字:C语言和Java都有一些保留关键字,这些关键字在代码中有特殊的含义,不能作为标识符使用。但是C语言和Java的关键字并不完全相同,所以在命名变量或函数时要注意不要使用这些关键字。 2. 大小写敏感性:C语言是大小写敏感的,而Java是大小写不敏感的。这意味着在C语言中,区分大小写的标识符是不同的,而在Java中,不区分大小写的标识符被视为相同的。 3. 标识符长度:C语言中的标识符长度没有限制,可以是任意长度的字符串。而Java中的标识符长度最多只能是65535个字符。 4. 开头字符:在C语言中,标识符的第一个字符必须是字母或下划线(_),后续字符可以是字母、数字或下划线。而在Java中,标识符的第一个字符必须是字母,可以是大小写字母,后续字符可以是字母、数字或下划线。 5. 保留字:在Java中,有一些额外的保留字,这些保留字虽然在当前版本的Java中没有特殊的用途,但是它们不能作为标识符使用。 综上所述,C语言和Java的标识符关键字、大小写敏感性、标识符长度、开头字符和保留字等方面都有一些区别。在编写代码时,我们需要遵守相应语言的标识符规则,以避免出现语法错误。 ### 回答3: C语言和Java都是常见的编程语言,它们有一些相似之处,但在标识符方面也存在一些区别。 首先,C语言和Java标识符的命名规则略有不同。在C语言中,标识符可以由字母、数字和下划线组成,并且必须以字母或下划线开头。另外,C语言对于标识符的大小写是敏感的,因此大小写不同的标识符被视为不同的标识符。而在Java中,标识符也可以由字母、数字和下划线组成,但必须以字母开头,并且对大小写不敏感。这意味着在Java中,大小写不同的标识符被视为相同的标识符。 其次,C语言和Java的关键字不同。C语言和Java都有自己的一组关键字,这些关键字具有特殊的意义,不能用作标识符。C语言的关键字包括"if"、"else"、"for"等,而Java的关键字则包括"if"、"else"、"for"等,虽然有一些相同,但也有一些不同的关键字。 最后,C语言和Java在标识符的命名习惯上也有一些差异。在C语言中,通常使用下划线作为多个单词的分隔符,例如"my_variable"。而在Java中,通常使用驼峰命名法(CamelCase)将多个单词连接在一起,其中每个单词的首字母大写,例如"myVariable"。 总而言之,C语言和Java在标识符方面存在一些区别。这些区别包括命名规则、关键字和命名习惯。了解和掌握这些区别对于在C语言和Java中编写规范和清晰的代码是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值