浅析_tmain()与main()的区别

 更新时间:2013年03月05日 11:59:06   作者:  
_tmain()是为了支持unicode所使用的main一个别名,既然是别名,应该有宏定义过的,在哪里定义的呢?就在那个让你困惑的<stdafx.h>里

有这么两行

#include <stdio.h>

#include <tchar.h>

我们可以在头文件<tchar.h>里找到_tmain的宏定义    

#define _tmain      main

所以,经过预编译以后, _tmain就变成main了

main()是标准C++的函数入口。标准C++的程序入口点函数,默认字符编码格式ANSI

函数签名为:

int main();

int main(int argc, char* argv[]);

_tmain()是windows提供的对unicode字符集和ANSI字符集进行自动转换用的程序入口点函数。

函数签名为:

int _tmain(int argc, TCHAR *argv[])

当你程序当前的字符集为unicode时,int _tmain(int argc, TCHAR *argv[])会被翻译成

int wmain(int argc, wchar_t *argv[])

当你程序当前的字符集为ANSI时,int _tmain(int argc, TCHAR *argv[])会被翻译成

int main(int argc, char *argv[])

相关文章

  • C++指向类成员的指针详解

    C++指向类成员的指针详解

    指向类成员的指针总的来讲可以分为两大类四小类(指向数据成员还是成员函数,指向普通成员还是静态成员),希望本片文章能给你带来帮助
    2021-09-09
  • C++ 之 Asio 库(全面解析)

    C++ 之 Asio 库(全面解析)

    下面小编就为大家带来一篇C++ 之 Asio 库(全面解析)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • C++开发在IOS环境下运行的LRUCache缓存功能

    C++开发在IOS环境下运行的LRUCache缓存功能

    本文着重介绍如何在XCODE中,通过C++开发在IOS环境下运行的缓存功能。算法基于LRU,最近最少使用,需要的朋友可以参考下
    2012-11-11
  • C语言调用SQLite数据库实现数据增删改查

    C语言调用SQLite数据库实现数据增删改查

    SQLite是一种轻量级的关系型数据库管理系统,是一个开源的、零配置的、服务器端的、自包含的、零管理的、事务性的SQL数据库引擎,本文主要介绍了如何调用SQLite数据库实现数据增删改查,需要的可以参考一下
    2023-08-08
  • C语言实现简单五子棋游戏

    C语言实现简单五子棋游戏

    这篇文章主要为大家详细介绍了C语言实现简单五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • C++ 超详细快速掌握二叉搜索树

    C++ 超详细快速掌握二叉搜索树

    从这篇博客开始,我就要和大家介绍有关二叉搜索树的知识,它还衍生出了两棵树——AVL树和红黑树,在后面两篇博客我都会介绍。今天先从二叉搜索树开始引入
    2022-03-03
  • C++深入分析讲解链表

    C++深入分析讲解链表

    当我们在写一段代码时,如果要频繁的在一块区域进行插入或者删除操作时,会发现用数组实现会比较复杂,这时候我们就要用另一种数据结构,链表来实现
    2022-06-06
  • C++构造函数初始化顺序详解

    C++构造函数初始化顺序详解

    这篇文章主要介绍了C++构造函数初始化顺序详解,是对C++代码的运行机制深入探讨,需要的朋友可以参考下
    2014-10-10
  • C++设计与声明超详细讲解

    C++设计与声明超详细讲解

    C++软件开发可以理解为设计一系列的类,让这些类相互使用,最终实现我们所需要的功能。类与类之间的相互关系可以很复杂,也可以很简单,如何简单高效的描述类与类之间的关系是设计的难点之一。遵循本文所提供的方法,将会给你一些灵感
    2022-09-09
  • C++实现简单单向链表

    C++实现简单单向链表

    这篇文章主要为大家详细介绍了C++实现简单单向链表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05

最新评论