求C语言中int ,long int,char,float,short,DWORD,WORD,BYTE,byte的大小

求C语言中int ,long int,char,float,short,DWORD,WORD,BYTE,byte的大小,第1张

变量占用内存字节由 *** 作系统决定,

64位系统中,long占用8字节,……

32位 *** 作系统中,int,long占用4字节,short占用2字节……

16位系统中,int占用2字节,……

数字3占用多少,和你声明的的类型有关,

在32位系统中,将3赋值给short型变量,他就占用2个字节,如果赋值给int型,他就占用4个字节

可以用sizeof这个函数来计算。例子:

int x, n;

n = sizeof(x);

n的值就是结果。

如果是文件,用Syste.IO.File.ReadByte(路径)(不记得是ReadByte还是ReadBytes)了,你自己试下,这个可以实现,如果自定义的对象,model等可以自己定一个序列化的类,或者网上搜一下c# 序列化

用以下的方法可以获取一个文件的字节数:

先用fopen打开文件,然后把文件指针指向文件尾.

再用ftell获得文件指针当前位置(即文件长度).

源代码:

#include "stdafx.h"

#include <stdio.h>

#include <iostream>

using namespace std

int main()

{

FILE* fp = NULL

int nFileLen = 0

fp = fopen("c:/Test.txt", "rb")

if (fp == NULL)

{

cout <<"can't open file" <<endl

return 0

}

fseek(fp,0,SEEK_END)//定位到文件末

nFileLen = ftell(fp)//文件长度

cout <<"file len = " <<nFileLen <<endl

return 0

}

可以用 stat (win 下 _stat)函数直接得文件尺寸。

man 2 stat

1.MFC中的方法:(C++)

CFileStatus status

CFile::GetStatus("D:\\test.txt",status)

long lSizeOfFile

lSizeOfFile = status.m_size

lSizeOfFile的值就是D:\\test.txt文件的大小

2.标准C获得文件大小的5种方法

(注意:"__FILE__"指的是当前文件,你可以改为有效路径的目标文件,比如"D:\\test.txt")

struct stat {

dev_t st_dev/* ID of device containing file */

ino_t st_ino/* inode number */

mode_t st_mode/* protection */

nlink_t st_nlink/* number of hard links */

uid_t st_uid/* user ID of owner */

gid_t st_gid/* group ID of owner */

dev_t st_rdev/* device ID (if special file) */

off_t st_size/* total size, in bytes */

blksize_t st_blksize/* blocksize for filesystem I/O */

blkcnt_t st_blocks/* number of blocks allocated */

time_t st_atime/* time of last access */

time_t st_mtime/* time of last modification */

time_t st_ctime/* time of last status change */

}

#include "stdafx.h"

#include "stdio.h"

#include <sys/stat.h>

#include <io.h>

#include <FCNTL.H>

int getfilesize()

{

int iresult

struct _stat buf

iresult = _stat(__FILE__,&buf)

if(iresult == 0)

{

return buf.st_size

}

return NULL

}

int getfilesize01()

{

int fp

fp=_open(__FILE__,_O_RDONLY)

if(fp==-1)

return NULL

return _filelength(fp)

//return NULL

}

int getfilesize02()

{

int fp

fp=_open(__FILE__,_O_RDONLY)

if(fp==-1)

return NULL

return _lseek(fp,0,SEEK_END)

//return NULL

}

int getfilesize03()

{

int fp

fp=_open(__FILE__,_O_RDONLY)

if(fp==-1)

return NULL

return _lseek(fp,0,SEEK_END)

//return NULL

}

int getfilesize04()

{

FILE *fp

if((fp=fopen(__FILE__,"r"))==NULL)

return 0

fseek(fp,0,SEEK_END)

return ftell(fp)//return NULL

}

int getfilesize05()

{

FILE *fp

char str[1]

if((fp=fopen(__FILE__,"rb"))==NULL)

return 0

for(int i = 0!feof(fp)i++)

{

fread(&str,1,1,fp)

}

return i - 1//return NULL

}

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

{

printf("getfilesize()=%d\n",getfilesize())

printf("getfilesize01()=%d\n",getfilesize01())

printf("getfilesize02()=%d\n",getfilesize02())

printf("getfilesize03()=%d\n",getfilesize03())

printf("getfilesize04()=%d\n",getfilesize04())

printf("getfilesize05()=%d\n",getfilesize05())

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12077197.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存