论坛首页 编程语言技术论坛

或许有人不知道的C++一些小细节点

浏览 5236 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-22   最后修改:2012-03-22
C++
C++ 中的一些鲜为人知的小细节点

1. "<%" "%>" 替代 "{" "}", "&&" "||" "!" 的替代 and or not ...
   注: 有木有人见过如下的C++代码么?一下代码是可以通过编译的需要开启 工程树形 C++ -> language ->          Disable language extensions 设置为 : Yes(/Za)
   如下图
:

  
#include <iostream>

using namespace std;
#define LUANGUAGE_EXTENSIONS
#ifdef LUANGUAGE_EXTENSIONS
int main() 
<%
  for (int i=0; i<5; i++) <%
    cout << "i: "           << i      << endl
    << "(i and 0) : "  << (i and 0)   << endl
    << "(i or 0) : "   << (i or 0)    << endl
    << "not i : "      << not i       << endl
    << "--------------------------"   << endl;
  %>
%>

#else

int main()
{
  for (int i=0; i<5; i++) {
    cout << "i: "       << i            << endl
      << "(i && 0) : "  << (i && 0)     << endl
      << "(i || 0) : "  << (i || 0)     << endl
      << "!i : "        << !i           << endl
      << "--------------------------"   << endl;
  }
}
#endif
   


运行结果:


2. 关键字 mutable 在const方法中需要修改数据成员变量 使用mutable关键字修饰


3. C++中的科学计数法表达 1e-4 相当于 0.0001, 1e+3 相当于 1000
  • 大小: 115 KB
  • 大小: 49.6 KB
   发表时间:2012-04-05  
第一条有点意思,是为了兼容还是神马目的呀?
0 请登录后投票
   发表时间:2012-04-05  
mutable 倒是知道,第一个没见过
0 请登录后投票
   发表时间:2012-04-09  
没意义啊!
0 请登录后投票
   发表时间:2012-04-09  
LZ使用的是什么编译器?第一个能在不同的编译器上编译通过么?
0 请登录后投票
   发表时间:2012-04-10  
grantren 写道
LZ使用的是什么编译器?第一个能在不同的编译器上编译通过么?


可以的, 而且这个是c++ 规范的一部分, 这样做的原因是,兼容不同国家的键盘, 并不是每个国家的键盘上都有 {} & ^ 等等这些字符的。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics