zoukankan      html  css  js  c++  java
  • c++ 采坑

    vs studio版本 vs2019,boost 是1.71版本

    中文官方文档
    https://docs.microsoft.com/zh-cn/cpp/?view=vs-2019#pivot=workloads&panel=workloads1

    1,vs studio 设置c++项目的版本

    右击项目->属性->C/C++->语言->C++ 语言标准。
    当设置为默认值(应该即为IOS2014C++14标准)时,_MSVC_LANG值为201402L,
    当其值设置为:IOS2014C++14标准时,_MSVC_LANG值为201703L。修改配置后,程序恢复正常

    2,vs studio设置 boost库

    先编译好编译boost
    项目——>属性——>选择VC++目录,在包含目录 和 库目录添加以上2个路径
    包含目录加上 上 D:oost_1_71_0
    库目录加上 D:oost_1_71_0stagelib

    或可以新建一个系统环境变量BOOST_DIR,值为E:programoost_1_71_0。
    在path系统环境变量中添加:%BOOST_DIR%;
    VC++包含目录中添加: %BOOST_DIR%;
    VC++库目录中添加: %BOOST_DIR%stagelib;

    3,错误 LNK2005 _main 已经在 tt.obj 中定义

    错误 LNK1169 找到一个或多个多重定义的符号
    一个项目只能有一个main()函数,不然编译会出错

    4,#pragmaonce这个宏有什么作用?

    为了避免同一个头文件被包含(include)多次,C/C++中有两种宏实现方式:一种是#ifndef方式;另一种是#pragma once方式。
    在能够支持这两种方式的编译器上,二者并没有太大的区别。但两者仍然有一些细微的区别。

    5,常用快捷键

    ctrl+k,c 注释选中行
    ctrl+k,u 取消对选中行的注释
    全局 格式化代码 快捷键ctrl+k,在同时按ctrl+d
    选中行 ctrl+k, ctrl+f

    快速生成代码—–连续两次Tab键:
    例如:
    快速生成for循环—使用方法 代码中输入for,然后连续按两次Tab键
    快速生成try—catch—使用方法 代码中输入try,然后连续按两次Tab键

    Peek View 快速查看方法/类定义—–Alt +F12:
    方法的展开和折叠—–Ctrl+M+P/Ctrl+M+O:

    重写父类的方法—–override +Space(空格):
    设置快捷键 工具----选项------环境-----键盘

    6, 在vs studio里面编写 c项目代码

    https://blog.csdn.net/dingyc_ee/article/details/98075146

    7,vs studio在c++项目里添加文件

    https://blog.csdn.net/mayue_web/article/details/84030056
    点击Source Files ->add->existing Items ,选择刚才移除的c/c++文件就可以了。
    右键项目->添加->现有项,选择需要添加的文件

    8,添加源码目录

    https://blog.csdn.net/Leichelle/article/details/95049325

    9,hpp头文件与h头文件的区别

    https://blog.csdn.net/follow_blast/article/details/81706698
    hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。
    而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用 project中的cpp文件数与编译次数,也不用再发布烦人的lib与dll,因此非常适合用来编写公用的开源库。

    10,This function or variable may be unsafe

    _CRT_SECURE_NO_WARNINGS
    https://jingyan.baidu.com/article/49711c616b8a1ffa441b7cdc.html

    11,C4996 'std::codecvt_utf8<wchar_t,1114111,(std::codecvt_mode)0>':warningSTL4017: std::wbuffer_convert,

     std::wstring_convert, and the <codecvt> header (containing std::codecvt_mode, std::codecvt_utf8, std::codecvt_utf16, 
     and std::codecvt_utf8_utf16) are deprecated in C++17. (The std::codecvt class template is NOT deprecated.) 
     The C++ Standard doesn't provide equivalent non-deprecated functionality; 
     consider using MultiByteToWideChar() and WideCharToMultiByte() from <Windows.h> instead. 
     You can define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge 
     that you have received this warning.	cinatra	D:cppcinatracinatraincludecinatraurl_encode_decode.hpp	52	
    

    在url_encode_decode.hpp上加入#pragma warning(disable:4996),抑制一下警告就ok了
    注意不管是调试在x86,还是x64都是没问题的

    12,暂停调试cli,查看输出结果

     system("pause");
     // 更通用的方法
     std::cin.ignore();
    

    13,C++ #include—尖括号和双引号的区别

    简单区分:
    1,系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找。

    #include <xxx.h>
    

    2,用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找,然后在到C++安装目录(比如VC中可以指定和修改库文件查找路径,Unix和Linux中可以通过环境变量来设定)中查找,
    最后在系统文件中查找。

    #include “xxx.h”
    

    尽管以上两种#include命令都可以正确地被VC++识别了,但是它们却并不符合C++的标准。标准规定,包含C++提供的标准头文件或系统头文件时应使用尖括号,包含自定义头文件时可使用双引号。

    14,数据类型和范围

    类型 字节长度 范围
    char 1 个字节 -128 到 127 或者 0 到 255
    unsigned char 1 个字节 0 到 255
    signed char 1 个字节 -128 到 127
    int 4 个字节 -2147483648 到 2147483647
    unsigned int 4 个字节 0 到 4294967295
    signed int 4 个字节 -2147483648 到 2147483647
    short int 2 个字节 -32768 到 32767
    unsigned short int 2 个字节 0 到 65,535
    signed short int 2 个字节 -32768 到 32767
    long int 8 个字节 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
    signed long int 8 个字节 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
    unsigned long int 8 个字节 0 到 18,446,744,073,709,551,615
    float 4 个字节 精度型占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字)
    double 8 个字节 双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字)
    long double 16 个字节 长双精度型 16 个字节(128位)内存空间,可提供18-19位有效数字。
    wchar_t 2 或 4 个字节 1 个宽字符

    15,特殊字符

    特殊字符 含义
    a 铃声(警报声)
     回退
    f 换页
    换行
    回车
    TAB键
    v 垂直制表
    ' 单引号
    " 双引号
    ? 问号
    反斜杠
    00 八进制
    xhhh 十六进制

    16,

  • 相关阅读:
    分位数(quantiles)、Z-score 与 F-score
    学术研究中的 NLP
    学术研究中的 NLP
    国内外免费电子书(数学、算法、图像、深度学习、机器学习)
    国内外免费电子书(数学、算法、图像、深度学习、机器学习)
    中英文对照 —— 缩略词
    内核编译及模块相关命令使用
    UVA 156 (13.08.04)
    hdu3117之矩阵快速幂
    系统运维技巧(三)——利用dd命令临时增加交换分区
  • 原文地址:https://www.cnblogs.com/zx-admin/p/13098049.html
Copyright © 2011-2022 走看看