c语言message函数,C语言:Message类

message.h

#ifndef MESSAGE_H

#define MESSAGE_H

#define TRUE 1

#define FALSE 0

typedef struct {

int sender;

int isSend;

int isCharge;

char date[];

}Message;

Message * makeMessage(const int sender, const char *date);

void setSendFlag(Message * const message);

void setChargeFlag(Message * const message);

int isSameDate(const Message * const message, const char * const date);

char * format(const Message * const message);

const char * boolStr(const int value);

#endif

message.c

#include

#include

#include

#include

#include "message.h"

Message * makeMessage(const int sender, const char *date)

{

Message *message = (Message*)malloc(sizeof(Message));

assert(message != NULL);

message->sender = sender;

message->isSend = FALSE;

message->isCharge = FALSE;

strncpy(message->date, date, );

return message;

}

const char * boolStr(const int value)

{

return value == TRUE ? "TRUE" : "FALSE";

}

char * format(const Message * const message)

{

#define BUF_SIZE 1024

static char buffer[BUF_SIZE];

memset(&buffer, , BUF_SIZE);

snprintf((char*)&buffer, BUF_SIZE, "Message \n", \

message->sender, boolStr(message->isSend), boolStr(message->isCharge));

return (char*)buffer;

}

void setSendFlag(Message * const message)

{

message->isSend = TRUE;

}

void setChargeFlag(Message * const message)

{

message->isCharge = TRUE;

}

int isSameDate(const Message * const message, const char * const date)

{

if (strncmp(message->date, date, ) == )

{

return TRUE;

}

else

{

return FALSE;

}

}

testMessage.c

#include

#include "message.h"

#include "gtest/gtest.h"

TEST(MESSAGE,makeMessage){

Message *message = makeMessage(,"");

EXPECT_EQ(, message->sender);

EXPECT_STREQ("Message <1 FALSE FALSE>\n", format(message));

}

编译命令:

g++ -c message.c

g++ -c testMessage.c

g++ message.o testMessage.o -lgtest -lpthread

./a.out

输出

Running main() from gtest_main.cc

[==========] Running test from test case.

[----------] Global test environment set-up.

[----------] test from MESSAGE

[ RUN ] MESSAGE.makeMessage

[ OK ] MESSAGE.makeMessage ( ms)

[----------] test from MESSAGE ( ms total)

[----------] Global test environment tear-down

[==========] test from test case ran. ( ms total)

[ PASSED ] test.

C&num; Message类的属性Msg所关联的消息ID

C# Message类的属性Msg所关联的消息ID   https://msdn.microsoft.com/en-us/library/windows/desktop/ms645606(v=vs.8 ...

WCF初探-22:WCF中使用Message类&lpar;上&rpar;

前言 从我们学习WCF以来,就一直强调WCF是基于消息的通信机制.但是由于WCF给我们做了高级封装,以至于我们在使用WCF的时候很少了解到消息的内部机制.由于WCF的架构的可扩展性,针对一些特殊情况, ...

WCF初探-23:WCF中使用Message类&lpar;下&rpar;

前言 在上一篇WCF中使用Message类(上)中,文章介绍了WCF中使用Message类的基本知识和怎样创建消息,本文是承接上一篇文章,如果想要更好的阅读本文,请先阅读上一篇文章.在这篇文章中,我将 ...

SQL语言四大类

SQL语言四大类   SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL. 数据查询语言DQL   数据查询语言DQL基本结构是由SELECT子句, ...

R语言S3类的理解与构建

R语言类 R语言的类有S3类和S4类,S3类用的比较广,创建简单粗糙但是灵活,而S4类比较精细,具有跟C++一样严格的结构.这里我们主要讲S3类. S3类的结构 S3类内部是一个list,append ...

MVC框架入门准备(二) - 语言包类与工厂模式

语言包类: 相关配置项 LANG_FOLDER : 语言包目录名,默认为Lang LANG_AUTO : 自动识别语言,默认为true DEFAULT_LANG : 默认语言,默认为zh-cn方法 取 ...

WCF基础之Message类

客户端和服务端的通信都是通过接收和发送的Message实例建立起来的,大多数情况我们通过服务协定.数据协定和消息协定来构造传入和传出消息的. 一般什么时候使用Message类呢?不需要将消息序列化或者 ...

css3 - 语言伪类选择器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值