argc,avgv用法

argc 表示有几个参数,因为至少要指定一个应用程序的名,所以argc>=1. argv表示参数是什么。

int main(int argc, char **argv) {
printf("hello world.\n");
printf("argc=%d\n", argc);
int i = 0;
for (i = 0; i < argc; i++) {
printf("%s\n", argv[i]);
}
return 0;
}

判断命令行输入有没有某个字符串.

如果没有返回-1,如果有把字符串后面的数字转化为整型.

int ArgPos(char *str, int argc, char **argv) {
int a;
for (a = 1; a < argc; a++) {
if (!strcmp(str, argv[a])) {
if (a == argc - 1) {
printf("Argument missing for %s\n", str);
exit(1);
}
return a;
}
}
return -1;
} int main(int argc, char **argv) {
int i;
if ((i = ArgPos((char *)"-size", argc, argv)) > 0) {
printf("argv=%d", atoi(argv[i + 1]));
}
return 0;
}

alloc

malloc和alloc的作用类似,申请连续的内存空间.不同是calloc申请空间的内容被清空.malloc申请空间的内容是随机的.

#include <stdio.h>
#include <stdlib.h>
#define MAX 100
struct student {
int id;
int score;
};
struct student* s1;
struct student* s2;
/*
* malloc和alloc的作用类似,申请连续的内存空间.不同是calloc申请空间的内容被清空.
* malloc申请空间的内容是随机的.
*/
int main(int argc, char **argv) {
s1 = (struct student*)calloc(MAX, sizeof(struct student));
printf("%d, %d\n", s1[0].id, s1[0].score); s2 = (struct student*)malloc(MAX * sizeof(struct student));
printf("%d, %d\n", s2[0].id, s2[0].score);
return 0;
}

fscanf

把文件中的内容读取到内存

#include <stdio.h>
#include <stdlib.h>
int main(){
char str1[10], str2[10], str3[10];
int year;
FILE * fp;
fp = fopen ("file.txt", "w+");
fputs("We are in 2012", fp);
rewind(fp);//重新指向流的开头
fscanf(fp, "%s %s %s %d", str1, str2, str3, &year);//把数据从文件中读到内存
printf("Read String1 |%s|\n", str1 );
printf("Read String2 |%s|\n", str2 );
printf("Read String3 |%s|\n", str3 );
printf("Read Integer |%d|\n", year );
fclose(fp);
return(0);
}

posix_memalign

linux支持posix_memalign,windows不支持.posix_memalign申请空间考虑了内存对齐的问题.和malloc,calloc相比效率更高.第一个参数要转化成(void**),第2个参数必须是2^n,第3个参数必须是第2个参数的倍数.最终申请的空间数是第3个参数指定的,申请空间的类型是*buf.

#include <stdio.h>
#include <stdlib.h>
int main() {
float *buf;
int ret;
ret = posix_memalign((void**)&buf, 256, sizeof(float) * 256);
if (ret) {
printf ("error.");
return -1;
}
int i;
for (i = 0; i < 256; i++) {
buf[i] = i;
}
for (i = 0; i < 256; i++) {
printf("%f\n", buf[i]);
}
return 0;
}

word2vec用到的c语言知识的更多相关文章

  1. 【转】R语言知识体系概览

    摘要:R语言的知识体系并非语法这么简单,如果都不了R的全貌,何谈学好R语言呢.本文将展示介绍R语言的知识体系结构,并告诉读者如何才能高效地学习R语言. 最近遇到很多的程序员都想转行到数据分析,于是就开 ...

  2. STM32F4 阿波罗 库函数与C语言知识

    先聊一聊: 之前使用32都是用的库函数,但是没有理解为什么那么操作,有很多的文件我也不知道要看哪一个,感觉云里雾里,没有学清楚一件东西的感觉不太好,于是就在前几天一直跟着比较详细的视频学习.开始老师讲 ...

  3. C语言知识汇总,史上最全面总结,没有之一

    C语言基础 C语言学习路线 C语言入门笔记 初识C语言 简单的C程序示例 我们编写的C代码是怎样跑起来的? 简单示例,VS2019调试C语言程序 C语言基础-数据类型 深入理解变量,变量的声明,定义, ...

  4. 老师不讲的C语言知识

    老师不讲的C语言知识 导语: 对于工科生,C语言是一门必修课.标准C(ANSI C)这个看似简单的语言在硬件底层编程.嵌入式开发领域还是稳坐头把交椅.在20年5月份,C语言就凭借其在医疗设备上的广泛应 ...

  5. Go语言知识查漏补缺|基本数据类型

    前言 学习Go半年之后,我决定重新开始阅读<The Go Programing Language>,对书中涉及重点进行全面讲解,这是Go语言知识查漏补缺系列的文章第二篇,前一篇文章则对应书 ...

  6. 关于C语言知识调查

    因为上一篇随笔对这一部分写得不够清楚,因此在这篇做一些补充. 你是怎么学习C语言的? 起初,对于C语言的学习主要是通过老师课堂的教学,完成相关的课后作业.与我的技能相比的话,他们都有一个共同点需要去实 ...

  7. 基础语言知识JAVA

    1. 总结: JAVA比较重要的博客: http://www.runoob.com/java/java-tutorial.html     (JAVA教程) http://blog.csdn.net/ ...

  8. [Java面试九]脚本语言知识总结.

    核心内容概述 1.JavaScript加强,涉及到ECMAScript语法.BOM对象.DOM对象以及事件. 2.Ajax传统编程. 3.jQuery框架,九种选择器为核心学习内容 4.JQuery ...

  9. JavaScript语言知识收藏

    接触Web开发也已经有一段时间了,对javascript的认识也比以前有了更加深入的认识了,所以觉得应该整理一下. 一.JavaScript不支持函数(方法)的重载,用一个例子证明如下: functi ...

随机推荐

  1. Ubuntu 16.04安装JDK并配置环境变量

    系统版本:Ubuntu 16.04 JDK版本:jdk1.8.0_121 1.官网下载JDK文件jdk-8u121-linux-x64.tar.gz 我这里下的是最新版,其他版本也可以 2.创建一个目 ...

  2. count的一些用法

    count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL  count(1)包括了所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL  count(列名)只包 ...

  3. 破解微擎安装,免费搭建微擎,免费破解微擎,微擎破解版本,最新版本V2.1.2,一键安装!!

    ​ 微擎是一款基于WEB2.0(PHP+Mysql)技术架构,免费开源的公众平台管理系统,一款致力于将小程序和公众号商业化.智慧化.场景化的自助引擎.微擎提供公众号.微信小程序.支付宝小程序.百度熊掌 ...

  4. PageHelper分页+排序

    使用pageHelper插件来分页,只需在执行sql前用即可 String orderBy = 排序字段 + " desc";//按照(数据库)排序字段 倒序 排序 PageHel ...

  5. lqb 入门训练 A+B问题

    入门训练 A+B问题 时间限制:1.0s   内存限制:256.0MB     问题描述 输入A.B,输出A+B. 说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标. 输入格式 输入的第 ...

  6. windows版的mysql主从复制环境搭建

    背景 最近在学习用Spring Aop来实现数据库读写分离的功能. 在编写代码之前,首先是要部署好mysql的环境,因为要实现读写分离,所以至少需要部署两个mysql实例,一主一从,并且主从实例之间能 ...

  7. Python 命令行之旅:深入 click 之子命令篇

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  8. jinjia2

    ansible-playbook --become --become-method=su -K copy.yml - hosts: web remote_user: ansible tasks: - ...

  9. labview连接mysql数据库

    前期准备:安装MySQL 并设置可远程连接 第一步 安装 mysql connector odbc https://www.cr173.com/soft/50794.html 第二步:创建数据源 本机 ...

  10. DexOpt相关的异常

    查找的资料 dvm探讨之odex绕过 DexClassLoader4.4.2动态加载分析(磁盘加载分析) - ::): DexOpt: incorrect opt magic number (0xff ...