zoukankan      html  css  js  c++  java
  • 《解读window核心编程》 之 字符和字符串处理方式

    推荐的字符和字符串处理方式
    • 開始将文本字符串想象为字符的数组,而不是 char 或字节的数组。
    • 用通用数据类型(如 TCHAR/PTSTR )来表示文本字符和字符串。
    • 用明白的数据类型(如 BYTE  PBYTE )来表示字节,字节指针和数据缓冲区。
    •  TEXT  _T 宏来表示字面量字符和字符串。但为了保持一致性和更好的可读性,请避免两者混用;
    • 运行全局替换(比如用 PTSTR 替换 PSTR  ;
    • 改动与字符串有关的计算。比如,函数常常希望我们传给它缓冲区打小的字符数。而不是字节数。这意味着我们应该传入 _countoof(szBuffer), 而不是 sizeof(szBuffer) 

      并且。假设须要为一个字符串分配一个内存块,并且知道字符串中的字符数,那么要 记住内存是以字节来分配的 

    • 避免使用 printf 系列函数,正确的做法是使用 MultiByteToWideChar WideCharToMultiByte 函数。

    • Unicode和_ Unicode符号要么同一时候指定。要么都不指定。

    对于字符串处理函数,应该遵循下面基本准则:

    • 始终使用安全的字符串处理函数,比方后缀为 _s 的函数,或者前缀为 StringCch 的函数。后者主要在我们想明白控制截断的时候使用了假设不像明白控制截断,首选前者。
    • 利用 /GS  /RTCs 编译器标志来自己主动检測缓冲区溢出。

    • 不要使用 Kernel32 方法来进行字符串处理,比方 lstrcat  lstrcpy 
    • 在应用程序的代码中,须要比較两种字符串,应使用 CompareStringOrdinal(注冊表)CompareString(用户字符串) 来进行比較。

  • 相关阅读:
    css样式兼容不同浏览器问题解决办法
    css 中input和select混排对齐问题
    盒模型详解
    css中的width,height,属性与盒模型的关系
    php中将文中关键词高亮显示,快捷方式可以用正则
    数据库面试知识
    ConcurrentHashMap原理分析(1.7与1.8)
    Docker 学习笔记
    秒杀系统架构分析与实战
    spring + redis 实现数据的缓存
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6746824.html
Copyright © 2011-2022 走看看