无题
默认情况下,浮点文字的类型为 double 。要使它们成为 float 文字,应使用 f (或 F )后缀:
123456789#include <iostream>int main(){ std::cout << 5.0 << '\n'; // 5.0 (no suffix) is type double (by default) std::cout << 5.0f << '\n'; // 5.0f is type float return 0;}
1float f { 4.1 }; // warning: 4.1 is a double literal, not a float literal
由于 4.1 没有后缀,因此文字的类型为 double ,而不是 float 。当编译器确定文字的类型时,它并不关心您对文字执行的操作(例如,在本例中,使用它来初始化 float 变量)。由于文字的类型 ( double ) 与用 ...
无题
无符号整数溢出
数字 280 太大,无法容纳在 0 到 255 的 1 字节范围内。比该类型的最大数字 256 大 1。因此,我们将 280 除以 256,得到 1 余数 24。 24 的余数就是存储的内容。
由于每个结构上int的大小不知道,可能是4或者2为了解决这个问题(在移植的时候可能会错误)
有固定宽度的整数:
包含在:
std::int8_t
std::uint8_t
std::int16_t
std::uint16_t
std::int32_t
std::uint32_t
std::int64_t
std::uint64_t
123456789#include <cstdint> // for fixed-width integers#include <iostream>int main(){ std::int16_t i{5}; std::cout << i << '\n'; return 0;}
11.2 x 10⁴` 将写为 `1.2 ...
无题
我们可以来看看有调试句子的程序:
12345678910111213141516171819#include <iostream>int getUserInput(){std::cerr << "getUserInput() called\n"; std::cout << "Enter a number: "; int x{}; std::cin >> x; return x;}int main(){std::cerr << "main() called\n"; int x{ getUserInput() }; std::cout << "You entered: " << x << '\n'; return 0;}
完成调试语句后,您需要将其删除或注释掉。然后,如果您稍后再次需要它们,则必须将 ...
无题
2.6
宏定义:
12345678910111213141516#include <iostream>#define PRINT_JOEint main(){#ifdef PRINT_JOE std::cout << "Joe\n"; // will be compiled since PRINT_JOE is defined#endif#ifdef PRINT_BOB std::cout << "Bob\n"; // will be excluded since PRINT_BOB is not defined#endif return 0;}
1Joe
**#if 1 **和 **#if 0 **
12345678910111213#include <iostream>int main(){ std::cout << "Joe\n";#if 0 // Don't compile anything ...
无题
As a reminder 提醒一下
无题
当某个变量被初始化了,但是没有被使用的时候,会又警告出现。
如果我们想要解决这些警告:C++17 引入了该[[maybe_unused]]属性,它允许我们告诉编译器我们可以接受未使用的变量
12345678910int main(){ [[maybe_unused]] double pi { 3.14159 }; [[maybe_unused]] double gravity { 9.8 }; [[maybe_unused]] double phi { 1.61803 }; // the above variables will not generate unused variable warnings return 0;}
错误示范:
12345678#include<iostream>int main(){ double PI{ 3.1415926 }; return 0;}//严重性 代码 说明 项目 文件 行 ...
无题
也许:learncpp.com 更好,内容都来自这里,我简单的随手记一下
设置安全等级==4,设置警告是报错,设置语言标准为最新 命令行:/w44365
以下程序应打印编译器当前配置使用的语言标准。您可以运行此程序来验证您的编译器是否使用您期望的语言标准。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include <iostream>const int numStandards = 7;const long stdCode[numStandards] = { 199711L, 201103L, 201402L, 201703L, 202002L, 202302L, 202612L };const char* stdName[numStandards] = { "Pre-C++11", "C++11", "C++14", "C++17 ...