宏定义放在结构体里

#include<stdio.h>

struct node

{

#define Max(a,b) a>b?a:b//个人感觉宏定义放在结构体里和放在放在最上面是没有区别的,可能是为了读代码方便

int x,y;

};

struct node2

{

int x,y;

};

int main()

{

node a;

node b;

scanf("%d%d",&a.x,&a.y);

scanf("%d%d",&b.x,&b.y);

printf("%d %d\n",Max(a.x,a.y),Max(b.x,b.y));

return 0;

}

/*

输入

1 2 3 4

输出

2 4

*/

时间: 2024-11-29 11:35:27

宏定义放在结构体里的相关文章

指针直接赋值为整型AND利用宏定义求结构体成员偏移量

首先我们要更正一个很熟悉的概念,那就是指针不仅仅是“地址”,指针还有一个很重要的特性,那就是“类型”. 指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是 int *p = 0; 除外,该语句表示指针为空): 所以 int *p = 10; 这样的代码是不允许的.在C++里面直接是error的,即使在一些C编译器中以warning的形式提示,但是warning有的时候也很严重.所以这种东西不要用.从const int到int*是不存在隐士转换的.

读陈浩的《C语言结构体里的成员数组和指针》总结,零长度数组

原文链接:C语言结构体里的成员数组和指针 复制如下: 单看这文章的标题,你可能会觉得好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接.微博截图如下.我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章. 为了方便你把代码copy过去编译和调试,我把代码列在下面: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <stdio.h>

程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。

程序通过定义学生结构体变量,存储学生的学号.姓名和3门课的成绩.函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据.例如,若b所指变量t中的学号.姓名和三门课的成绩一次是:10002."ZhangQi".93.85.87,修改后输出t中的数据应为:10004."Lijie".93.85.87. #include <stdio.h>#include <string.h>struct student { lo

C语言结构体里的成员数组和指针

struct test{ int i; char *p; }; struct test *str; int a = 1; char *b = "ioiodddddddddddd"; str = (struct test *)malloc(sizeof(struct test));//结构体指针不为null str->i = a; str->p = b; printf("%s\n",str->p); //输出ioiodddddddddddd retu

c结构体里的数组与指针

/* 訪问成员数组名事实上得到的是数组的相对地址.而訪问成员指针事实上是相对地址里的内容 */ struct buf_str { int length; char buf[0]; }; struct foo { buf_str* pbuf; }; void test_funny() { foo f = {0}; printf("%x\n", f.pbuf); printf("%x\n", &f.pbuf->length); printf("%

go 结构体定义和结构体指针

结构体一个结构体(`struct`)就是一个字段的集合. 将来要使用它向java .C# 中的class 有相同的地位 struct 可以用来值传递 同时可以通过引用传递参数(地址) java C# 对于class只能引用传递 结构体定义  type YourName struct 例如: type Vertex struct { X int Y int} ------------------------------------------ package main import "fmt&qu

在C的头文件中定义的结构体,如何在cpp文件中引用

解决方案1:在cpp文件中放置.c,且在该文件中引用变量 解决方案2:在一个cpp文件中包含.c,但在另一个cpp文件中使用结构体变量 cpp文件1 cpp文件2 #include "dialog3.h" #include <QDebug> extern "C" { typedef struct PRINT { unsigned char Parameters;//BitDepthAC,BitDepthDC,q unsigned char PlaneCo

结构体里的“位域”(bit-field)结构

首先看一个题目: 1 #include <iostream> 2 using namespace std; 3 #include <string.h> 4 typedef struct AA{ 5 int b1:5;//第一个字节的低5位,即b0:b4 6 int b2:2;//b5:b2 7 }AA; 8 9 int main(int argc, char** argv) { 10 AA aa; 11 char cc[100]; 12 strcpy(cc,"012345

哈希表以及在结构体里乱搞....

哈希表(csp-s模拟测试53 v) struct map_hash{ struct node{int to,n;double val;int len;}e[31000001]; int tot=0; int head[MAXN];int len=0; double &operator[](int state){ int st=state*len%mod+1; for(int i=head[st];i;i=e[i].n){ if(e[i].to==state&&e[i].len==