c编译-c语言sizeof操作符的问题

问题描述

c语言sizeof操作符的问题

sizeof后面加函数名为什么结果会是1,求大神详细讲解原因,不要说不能加,因为编译运行出来了结果啊,总有原因的

解决方案

http://segmentfault.com/q/1010000000801175/a-1020000000925625
gcc的规定

解决方案二:

把你的代码贴出来,是不是你用错了。

解决方案三:

原因都是说对void和函数名的sizeof操作是没有意义的。但是我想知道为什么会有结果,并且结果还都是1啊,这有什么能解释的么?对void的sizeof是1怎么解释?(追问是今天有人说能解释,但他不知道,所以来问)

解决方案四:

继续想问一下sizeof(FILE)的大小,32位结果是32,64位结果是48,这个能解释一下么

解决方案五:

把你的代码贴出来,是不是你用错了。

解决方案六:

是不是处理的函数返回值

解决方案七:

C语言中的 sizeof 问题
C语言之sizeof操作符
c语言sizeof

时间: 2024-10-30 03:47:28

c编译-c语言sizeof操作符的问题的相关文章

C语言安全编码之数值中的sizeof操作符_C 语言

通常来说获取数组的长度时不要对指针应用sizeof操作符. 现来看看下面这段代码: void clear(int array[]) { for(size_t i = 0; i < sizeof(array) / sizeof(array[0]); i++) { array[i] = 0; } } void dowork(void) { int dis[12]; clear(dis); /*...*/ } clear()使用sizeof(array) / sizeof(array[0])这种用法确

c语言-C语言sizeof(&amp;amp;quot;&amp;amp;quot;) strlen(&amp;amp;quot;&amp;amp;quot;)

问题描述 C语言sizeof("") strlen("") 在32位编译系统中,字符型变量占1个字节,则sizeof("") .strlen("")分别为()A.1 2 B.2 1 C.2 0 D. 2 2 求大侠详细解释 解决方案 sizeof("")=2 sizeof是编译器在编译时计算,计算括号中内容的大小,注意,这和地址没关系,因为这发生在编译期 那么""是多大呢?是1个字符,再

mac编译C语言出现symbol not found for architecture x86_64

问题描述 mac编译C语言出现symbol not found for architecture x86_64 我是在mac电脑的终端直接make all的,有makefile文件 Undefined symbols for architecture x86_64: ""_test_yylex_internal"" referenced from: _main in test_yylex-23b473.o ld: symbol(s) not found for ar

编程c语言-vs编译c语言的兼容问题

问题描述 vs编译c语言的兼容问题 请问一下为什么我用vs2015编的c语言exe程序在其它没有vs只有vc++6.0的电脑上运行的时候无法运行,提示缺少vcruntime140.dll?有没有什么办法解决(ps:不改变运行程序的电脑) 解决方案 更改项目属性,将/MD改为/MT 解决方案二: 在VC++6.0中新建一个项目,把源代码复制粘贴过来. 解决方案三: 不清楚你的项目设置情况. 1.编译release版本试试 2.如果是MFC把项目属性改为静态链接 解决方案四: 下载这个vcrunti

c语言-VS2013编译C语言出现“系统找不到指定的路径”请按任意键继续

问题描述 VS2013编译C语言出现"系统找不到指定的路径"请按任意键继续 自己安装java,jdk的时候改了几个环境变量,请问大神是不是跟这个有关系? 安装vs2013后,无论编写任何C语言程序都出现这种情况. 解决方案 这是没有保存的原因,你保存一下就好了.要是还不行,你就看看解决资源管理器里面测试的项目是不是现在的项目.

探究下一代JVM语言如何处理操作符重载

编程语言中的好理念可以延续并扩展到其他语言,就像美酒一样历久弥香.因此,不足奇怪的是,Java 下一代语言 - Groovy.http://www.aliyun.com/zixun/aggregation/16945.html">Scala 和 Clojure - 具有很多共同的特性.在本期和下一期 Java 下一代 文章中,我将探讨每种语言语法中功能清单的一致性.我从能够重载操作符这个特性说起 - 克服了Java 语言中长期存在的一个缺点. 操作符重载 如果您改造过 Java BigDe

如何将C语言代码转换为应用程序(也就是编译)_C 语言

C语言是高级语言,它的语法接近于人类的自然语言,但比自然语言严谨.计算机无法直接将C语言的代码运行,他们并不懂得什么是C语言,实际上,计算机只处理他们的机器语言,所以我们必须为自己找一个翻译,这个翻译可分为2种: 1.编译器 编译器是"文章的译者",它在我们完成创作后将其翻译(实际上是编译)成为机器语言. 2.解释器 解释器是"随声翻译",代码运行的同时它们就开始工作,BASIC就是使用解释器,一般认为这种方法效率很低. C语言要请第1种翻译,要想让C语言代码执行,

linux使用gcc编译c语言共享库步骤_C 语言

对任何程序员来说库都是必不可少的.所谓的库是指已经编译好的供你使用的代码.它们常常提供一些通用功能,例如链表和二叉树可以用来保存任何数据,或者是一个特定的功能例如一个数据库服务器的接口,就像MySQL. 大部分大型的软件项目都会包含若干组件,其中一些你发现可以用在其他项目中,又或者你仅仅出于组织目的将不同组件分离出来.当你有一套可复用的并且逻辑清晰的函数时,将其构建为一个库会十分有用,这样你就不将这些源代码拷贝到你的源代码中,而且每次都要再次编译它们.除此之外,你还可以保证你的程序各模块隔离,这

VC++ 2005快速构建安全的应用程序

一. 简介 微软的Visual C++2005发布版本对于有志于轻松.迅速地编写安全可靠的应用程序的编程爱好者来说是正确地选择.正如你所听到的那样,Visual C++中语言和库的新特点使开发安全.可靠的应用程序比以前更容易.它即提供了功能强大并且灵活的标准C++,又提供了适于.NET框架下编程的最强大的开发语言. 本文中,我主要探讨Visual C++2005发布版本中部分语言和库的新特色,无论是对于教学项目还是大的应用工程,这都将帮助你在编写安全可靠的代码时提高工作效率. 二.C运行时库的安