标题:兴起凌晨写了个C程序,来猜猜结果~
只看楼主
JaceLin
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2015-10-2
结帖率:100%
已结贴  问题点数:20 回复次数:1 
兴起凌晨写了个C程序,来猜猜结果~


最近在搞TCP/IP编程,模仿TCP底层代码风格,写了个程序,有些地方其实还挺费解~
大家来猜猜结果,顺便都解释下为什么是这个结果~哈哈



程序代码:

#include <stdio.h>
#include <stdlib.h>

/* define a pointer function */
typedef void (*out_fn)(struct ip_addr *ip);

/* struct ip address */
struct ip_addr{
    char* addr;
};

/* struct network interface */
struct netif{
    struct netif *next;
    void * data;
    //void (* out)(struct ip_addr *ip);
    out_fn out;
};

/* a simple function */
void show_ip(struct ip_addr *ip)
{
    printf("ip address:%s \n",ip->addr);
}

/* main function  */
void main()
{
    /* declare and allocation memery */
    struct ip_addr *ip=(struct ip_addr*)malloc(sizeof(struct ip_addr));
    struct netif *net=(struct netif*)malloc(sizeof(struct netif));
    
    /* show the  struct netif size */
    printf("struct netif size :%d \n",sizeof net);          
    
    /* net->data handle */
    if(net->data)
    {
        net->data="this is network interface data.";
        printf("%s\n",net->data);                         
    }
    printf("net->data size :%d \n",sizeof net->data);        

    /* pointer function */
    if(ip)
    {
        ip->addr="192.168.1.110";
        net->out=show_ip;
        net->out(ip);        
    }

}


[ 本帖最后由 JaceLin 于 2015-10-2 00:25 编辑 ]
搜索更多相关主题的帖子: 风格 
2015-10-02 00:22
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:14 
厉害
2015-10-02 09:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-457859-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.124572 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved