c语言中符号是什么作用是什么,c语言中的符号"|="是什么意思?

bit_file->rack |=bit_file->mask;

补充:上面语句中的 |= 是什么意思?

完整源代码:

/*************开始BITIO.C**********/

/*

*该文件包含了所有的存取BIT的函数,适用于ANSI或者K&R C

*本书的每个程序都必须引用它

*/

#include

#include

#include “bitio.h”

#include “errhand.h”

BIT_FILE *OpenOutputBitFile( name )

char *name;

{

BIT_FILE *bit_file;

bit_file = (BIT_FILE *) calloc(1,sizeof( BIT_FILE ));

if ( bit_file == NULL )

return( bit_file );

bit_file->file=fopen( name,”rb”  );

bit_file->rack = 0;

bit_file->mask = 0×80;

bit_file->pacifier_counter = 0;

return( bit_file );

}

BIT_FILE *OpenInputBitFile( name )

char *name;

{

BIT_FILE *bit_file;

bit_file=(BIT_FILE *)calloc(1,sizeof( BIT_FILE ));

if( bit_file == NULL )

return( bit_file );

bit_file->file=fopen( name,”rb” );

bit_file->rack=0;

bit_file->mask=0×80;

bit_file->pacifier_counter=0;

return( bit_file );

}

void CloseOutputBitFile( bit_file )

BIT_FILE *bit_file;

{

if( bit_file->mask != 0×80 )

if( putc( bit_file->rack, bit_file->file )!=bit_file->rack )

fatal_error( “关闭Bit文件时发生致命错误!\n” );

fclose( bit_file->file );

free((char *)bit_file);

}

void CloseInputBitFile( bit_file )

BIT_FILE *bit_file;

{

fclose( bit_file->file );

free((char *)bit_file );

}

void OutputBit( bit_file,bit )

BIT_FILE *bit_file;

int bit;

{

if(bit)

bit_file->rack |=bit_file->mask;

bit_file->mask>>=1;

if( bit_file->mask==0){

if(putc(bit_file->rack,bit_file->file )!=bit_file->rack)

fatal_error(“在OutputBit处发生致命错误!\n”);

else

if((bit_file->pacifier_counter++ & 4095 )==0)

putc(‘.’,stdout);

bit_file->rack=0;

but_file->mask=0×80;

}

}

int InputBit( bit_file )

BIT_FILE *bit_file;

{

int value;

if( bit_file->mask==0×80 )

{

bit_file->rack=getc( bit_file->file );

if(bit_file->rack==EOF)

fatal_error(“在InputBit里发生致命错误!\n”);

if(( bit_file->pacifier_counter++&2047)==0)

putc(‘.’,stdout);

}

value=bit_file->rack & bit_file->mask;

bit_file->mask>>=1;

if( bit_file->mask=0)

bit_file->mask=0×80;

return (value?1:0);

}

unsigned long InputBits( bit_file,bit_count )

BIT_FILE *bit_file;

int bit_count;

{

unsigned long mask;

unsigned long return_value;

mask=1L<

return_value=0;

while(mask!=0)

{

if(bit_file->mask==0×80)

{

bit_file->rack=getc( bit_file->file);

if(bit_file->rack==EOF)

fatal_error(“在InputBit里发生致命错误!\n”);

if((bit_file->pacifier_counter++ & 2047)==0)

putc(‘.’,stdout);

}

if(bit_file->rack&bit_file->mask)

return_value |=mask;

mask>>=1;

bit_file->mask>>=1;

if(bit_file->mask=00)

bit_file->mask=0×80;

}

return (return_value);

}

void FilePrintBinary( file,code,bits )

FILE *file;

unsigned int code;

int bits;

{

unsigned int mask;

mask=1<

while(mask!=0)

{

if(code&mask)

fputc(’1′,file);

else

fputc(’0′,file);

mask>>=1;

}

}

/********************结束 BITIO.C************/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值