可读可执行的C语言简历源文件_C 语言

这里黑客新闻吗?作者用代码更新了自己的简历,是不是很接地气,特符合程序员的逼格。这是一份可读可执行的C语言源文件,也是作者编码风格的体现。

C语言天才写的一份简历

#include <stdio.h>
#include <time.h>

typedef struct {
  union {
    char * company;
    char * school;
    char * project;
  };
  union {
    char * location;
    char * url;
  };
  union {
    char * title;
    char * program;
  };

  time_t started;
  time_t left;

  char * description[];
} thing_t;

typedef thing_t job_t;
typedef thing_t school_t;
typedef thing_t project_t;

#define CURRENT 0 /* I wasn't alive at the Unix epoch, so that'll work */ /* Contact Information */ char * name = "Kevin R. Lange";
char * email = "klange@toaruos.org";
char * address = "1045 Mission St, Apt 440n" "San Francisco, CA 94103";

/* Education */
school_t uiuc = {
  .school  = "University of Illinois at Urbana-Champaign",
  .location = "Urbana, IL",
  .program = "BS Computer Science",
  .started = 1251158400,
  .left   = 1336608000,
  .description = {
    "Minor in International Studies in Engineering, Japan",
    "Focused on systems software courses",
    NULL
  }
};

school_t hit = {
  .school  = "Hiroshima Institute of Technology",
  .location = "Hiroshima, Japan",
  .program = "Study Abroad",
  .started = 1274745600,
  .left   = 1278288000,
  .description = {
    "Cultural exchange program",
    NULL
  }
};

school_t * schools[] = {
  &uiuc,
  &hit,
  NULL
};

/* Projects */
project_t compiz = {
  .project = "Compiz Window Manager",
  .url   = "http://compiz.org",
  .title  = "Developer",
  .started = 1201392000,
  .left  = 1264291200,
  .description = {
    "Minor plugin contributor",
    "Various research projects",
    NULL
  }
};

project_t toaruos = {
  .project = "ToAruOS",
  .url   = "https://github.com/klange/toaruos",
  .title  = "Lead",
  .started = 1295049600,
  .left  = CURRENT,
  .description = {
    "Hobby x86 Unix-like kernel and userspace",
    "Advanced in-house GUI with compositing window manager",
    NULL
  }
};

project_t * projects[] = {
  &toaruos,
  &compiz,
  NULL
};

/* Employment History */

job_t yelp = {
  .company = "Yelp, Inc.",
  .location = "San Francisco, CA",
  .title  = "Software Engineer, i18n",
  .started = 1339977600,
  .left   = CURRENT,
  .description = {
    "Developed several internal tools and libraries",
    "Provided critical input and design work for Yelp's launch in Japan",
    NULL
  }
};

job_t apple_internship = {
  .company = "Apple Inc.",
  .location = "Cupertino, CA",
  .title  = "Software Engineering Intern",
  .started = 1306886400,
  .left   = 1314662400,
  .description = {
    "Built software framework for testing and verification of desktop retina display modes",
    "Assisted other interns with Unix fundamentals",
    NULL
  }
};

job_t * jobs[] = {
  &yelp,
  &apple_internship,
  NULL
};

void print_thing (thing_t * thing) {
  char started[100];
  char left[100];
  struct tm * ti;
  int i = 0;

  printf ("%s at %s - %sn", thing->title, thing->company, thing->location);

  ti = localtime (&thing->started);
  strftime (started, 100, "%B %d, %Y", ti);

  if (thing->left == CURRENT) {
    printf ("%s to nown", started);
  } else {
    ti = localtime (&thing->left);
    strftime (left,  100, "%B %d, %Y", ti);
    printf ("%s to %sn", started, left);
  }

  char ** desc = thing->description;
  while (*desc) {
    printf ("- %sn", *desc);
    desc++;
  }
}

int main (int argc, char ** argv) {

  printf ("%sn%sn%snn", name, email, address);

  puts ("Educationn");
  school_t ** s = schools;
  while (*s) {
    print_thing (*s);
    puts ("");
    s++;
  }

  puts ("Employmentn");
  job_t ** j = jobs;
  while (*j) {
    print_thing (*j);
    puts ("");
    j++;
  }

  puts ("Projectsn");
  project_t ** p = projects;
  while (*p) {
    print_thing (*p);
    puts ("");
    p++;
  }

  return 0;
}

网友 Wossoneri 编译后,我们看到的简历

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c语言
简历
可读可写可执行、linux可读可写可执行、可读写不可执行权限、可读可写不可执行、c语言源文件,以便于您获取更多的相关知识。

时间: 2024-11-08 18:59:57

可读可执行的C语言简历源文件_C 语言的相关文章

对比C语言中execv相关的执行文件的三个函数_C 语言

C语言execv()函数:执行文件函数头文件: #include <unistd.h> 定义函数: int execv (const char * path, char * const argv[]); 函数说明:execv()用来执行参数path 字符串所代表的文件路径, 与execl()不同的地方在于execve()只需两个参数, 第二个参数利用数组指针来传递给执行文件. 返回值:如果执行成功则函数不会返回, 执行失败则直接返回-1, 失败原因存于errno 中. 错误代码:请参考 exe

MySQL的C语言API接口_C 语言

1.首先当然是连接数据库,函数原型如下: MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long clientflag); 第一个参数 MYSQL是 C api中一个非常重要的变量,里面内存非常丰富

C语言实现双向链表_C 语言

这个小代码是我凭自己对指针和链表的理解和认识,自己实现的,没有参考其他人的代码,如果有相同的地方,那真的只是巧合,代码我在ubuntu 15.04下测试通过,可能存在很多错误和漏洞. doublelist.c /************************************************************************* > File Name: doublelist.c > Author: ChenYiLiang > Mail: chenyilian

马尔可夫链算法(markov算法)的awk、C++、C语言实现代码_C 语言

1. 问题描述 马尔可夫链算法用于生成一段随机的英文,其思想非常简单.首先读入数据,然后将读入的数据分成前缀和后缀两部分,通过前缀来随机获取后缀,籍此产生一段可读的随机英文. 为了说明方便,假设我们有如下一段话:   复制代码 代码如下:    Show your flowcharts and conceal your tables and I will be mystified. Show your tables and your flowcharts will be obvious.   假

深入理解C语言的逻辑控制_C 语言

本文对C语言的逻辑控制做一番较为深入的探讨,一般来说C语言的逻辑控制语句主要有如下的7种: 1. goto 最强大,但一般只在特殊环境下使用. 2. if else 3. ?: 4. switch case 5. for 6. while 7. do while 自从dijkstra的论文Go To Statement Considered Harmful以后,C语言代码很少看到goto了.(一般用在多次资源分配的错误处理上) 但,从计算机的角度来说,缺少goto(jmp指令)还真没法干活.其实

纯C语言实现五子棋_C 语言

正在考虑增加一个MFC界面.不是人机对战的. 五子棋.c //date 2014年7月7日09:53:24 //willows //五子棋 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <assert.h> //棋盘初始化函数 //Chessboard棋盘数组,ln=棋盘大小,成功返回Chessboard,不成功NULL void init_Chessboa

排列和组合算法的实现方法_C语言经典案例_C 语言

排列和组合算法是考查递归的常见算法,这两种算法能用递归简洁地实现. 本人在经过多次摸索和思考之后,总结如下,以供参考. 程序代码如下: #include <stdio.h> #include <stdlib.h> char array[] = "abcd"; #define N 4 #define M 3 int queue[N] = {0}; int top = 0; int flag[N] = {0}; void perm(int s, int n) { i

如何优雅地使用c语言编写爬虫_C 语言

大家在平时或多或少地都会有编写网络爬虫的需求.一般来说,编写爬虫的首选自然非python莫属,除此之外,java等语言也是不错的选择.选择上述语言的原因不仅仅在于它们均有非常不错的网络请求库和字符串处理库,还在于基于上述语言的爬虫框架非常之多和完善.良好的爬虫框架可以确保爬虫程序的稳定性,以及编写程序的便捷性.所以,这个cspider爬虫库的使命在于,我们能够使用c语言,依然能够优雅地编写爬虫程序. 1.爬虫的特性 配置方便.使用一句设置函数,即可定义user agent,cookie,time

socket多人聊天程序C语言版(一)_C 语言

首先,不要一步登天直接解决多人聊天这个问题,先把问题化简. 1.多人聊天的核心问题是服务器如何标识不同的客户端,如何根据客户端的需求转发消息给指定客户端. 2.多人聊天转化为C-C聊天,但是不再是直接C-C,而是通过server转发消息,所以变成==>C-S-C. 3.server如何允许2个client同时连接,设置listen函数的第二个参数,最大连接数. 4.server如何标识两个client,用一个结构体数组来存放两个client的信息. 5.server如何转发消息给client,很