file.read((char*)(this),sizeof char(*this))是什么意思

pascal中 Fillchar(a,sizeof(a),0)是什么意思?_百度知道
pascal中 Fillchar(a,sizeof(a),0)是什么意思?
我有更好的答案
Procedure FillChar ( Var X; Count : L Value : Char or Byte);   意为:对一个Char类型的数组X进行Count次赋值,当Value为Char类型时,直接赋值;若Value为Byte类型时,将Value作为AscII赋值给每个单元。根据引申意,我们举个例子:   首先定义:   Var   a : array[1..10000]   fillchar(a,sizeof(a),0);   一般使用fillchar时还使用了函数sizeof(),其功能是返回变量所占的总字节数,如上例返回:   当arrtype为   1.real sizeof(a)的值为60(每个元素占6个字节,10个元素共占60个字节)   single sizeof(a)的值为40(每个元素占4个字节,10个元素共占40个字节)   double sizeof(a)的值为80(每个元素占8个字节,10个元素共占80个字节)   extended sizeof(a)的...
把数组A初始化成全0
哪个喊你昨天睡觉的
其他类似问题
为您推荐:
sizeof的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁小木虫 --- 500万硕博科研人员喜爱的学术科研平台
&&查看话题
谁能帮我看一下这个程序是什么意思啊,谢谢
& &This file is part of Astrochem.
& &Astrochem is free software: you can redistribute it and/or modify
& &it under the terms of the GNU General Public License as published
& &by the Free Software Foundation, either version 3 of the License,
& &or (at your option) any later version.
& &Astrochem is distributed in the hope that it will be useful, but
& &WITHOUT ANY WARRANTY; without even the implied warranty of
& &MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&&See the GNU
& &General Public License for more details.
& &You should have received a copy of the GNU General Public License
& &along with Astrochem.&&If not, see &http://www.gnu.org/licenses/&.
#include &config.h&
#endiflm,, int *n_species);
void read_network (const char *chem_file, struct react reactions,
& & & & & & & & & & & & & & & & int *n_reactions, char *species,
& & & & & & & & & & & & & & & & int *n_species, int verbose)
& & & & FILE *f;
& & & & int&&line_number = 0;
& & & & char reactant1;
& & & & char reactant2;
& & & & char reactant3;
& & & & char product1;
& & & & char product2;
& & & & char product3;
& & & & char product4;
& & & & int reaction_
& & & & int reaction_
& & & & *n_species = 0;
& & & & *n_reactions = 0;
& & & & if (verbose &= 1)
& & & & & & & & fprintf (stdout, &Reading reactions network from %s... &, chem_file);
& & & & & & & & fflush (stdout);
&&/* Open the input file. We first look in the current directory, and
& &&&then in the PKGDATADIR directory. Exit if we can't find it. */
& & & & f = fopen (chem_file, &r&);
& & & & if ( !f )
& & & & & & & & char chem_file1;
& & & & & & & & strncpy (chem_file1, PKGDATADIR, sizeof (chem_file1) - 1);
& & & & & & & & strncat (chem_file1, &/&, sizeof (chem_file1) - strlen (chem_file1) - 1);
& & & & & & & & strncat (chem_file1, chem_file, sizeof (chem_file1) - strlen (chem_file1) - 1);
& & & & & & & & f = fopen (chem_file1, &r&);
& & & & & & & & if ( !f )
& & & & & & & & {
& & & & & & & & & & & & fprintf (stderr, &astrochem: error: can't find %s.\n&, chem_file);
& & & & & & & & & & & & exit (1);
& & & & & & & & }
&&/* Loop over the lines, and look for the reactants and products, and
& &&&the parameters of the reactions. */
& & & & while (fgets (line, MAX_LINE, f) != NULL)
& & & & & & & & line_number++;
& & & & & & & & if (line == '#') /* Skip comments. */
& && &/* Initialize reactants, products, and reaction parameters. */
& & & & & & & & strcpy (reactant1, &&);
& & & & & & & & strcpy (reactant2, &&);
& & & & & & & & strcpy (reactant3, &&);
& & & & & & & & strcpy (product1, &&);
& & & & & & & & strcpy (product2, &&);
& & & & & & & & strcpy (product3, &&);
& & & & & & & & strcpy (product4, &&);
& & & & & & & & alpha = 0;
& & & & & & & & beta = 0;
& & & & & & & & gamma = 0;
& & & & & & & & reaction_type = 0;
& & & & & & & & reaction_no = 0;
& && &/* Read the reactants, products, and reaction parameters. */
& & & & & & & & if ((sscanf (line, &%s -& %s %lf %lf %lf %d %d&,
& & & & & & & & & & & & reactant1, product1,
& & & & & & & & & & & & &alpha, &beta, &gamma, &reaction_type, &reaction_no) == 7)
& & & & & & & & & & & & || (sscanf (line, &%s + %s -& %s %lf %lf %lf %d %d&,
& & & & & & & & & & & & & & & & reactant1, reactant2, product1,
& & & & & & & & & & & & & & & & &alpha, &beta, &gamma, &reaction_type, &reaction_no) == 8)
& & & & & & & & & & & & || (sscanf (line, &%s + %s -& %s + %s %lf %lf %lf %d %d&,
& & & & & & & & & & & & & & & & reactant1, reactant2, product1, product2,
& & & & & & & & & & & & & & & & &alpha, &beta, &gamma, &reaction_type, &reaction_no) == 9)
& & & & & & & & & & & & || (sscanf (line, &%s + %s -& %s + %s + %s %lf %lf %lf %d %d&,
& & & & & & & & & & & & & & & & reactant1, reactant2, product1, product2, product3,
& & & & & & & & & & & & & & & & &alpha, &beta, &gamma, &reaction_type, &reaction_no) == 10)
& & & & & & & & & & & & || (sscanf (line, &%s + %s -& %s + %s + %s + %s %lf %lf %lf %d %d&,
& & & & & & & & & & & & & & & & reactant1, reactant2, product1, product2, product3, product4,
& & & & & & & & & & & & & & & & &alpha, &beta, &gamma, &reaction_type, &reaction_no) == 11)
& & & & & & & & & & & & || (sscanf (line, &%s + %s + %s -& %s + %s %lf %lf %lf %d %d&,
& & & & & & & & & & & & & & & & reactant1, reactant2, reactant3, product1, product2,
& & & & & & & & & & & & & & & & &alpha, &beta, &gamma, &reaction_type, &reaction_no) == 10))
& & & & & & & & & & & & ;
& & & & & & & & else
& & & & & & & & {
& & & & & & & & & & & & input_error (chem_file, line_number);
& & & & & & & & }
& && &/* Ignore the following species: cosmic-ray, uv-photon,
& & & &&&photon. Replace them by an empty string, and re-sort
& & & &&&species. */
& & & & & & & & if ((strcmp (reactant1, &cosmic-ray&) == 0)
& & & & & & & & & & & & || (strcmp (reactant1, &uv-photon&) == 0)
& & & & & & & & & & & & || (strcmp (reactant1, &photon&) == 0))
& & & & & & & & {
& & & & & & & & & & & & strcpy (reactant1, reactant2);
& & & & & & & & & & & & strcpy (reactant2, reactant3);
& & & & & & & & & & & & strcpy (reactant3, &&);
& & & & & & & & }
& & & & & & & & if ((strcmp (reactant2, &cosmic-ray&) == 0)
& & & & & & & & & & & & || (strcmp (reactant2, &uv-photon&) == 0)
& & & & & & & & & & & & || (strcmp (reactant2, &photon&) == 0))
& & & & & & & & {
& & & & & & & & & & & & strcpy (reactant2, reactant3);
& & & & & & & & & & & & strcpy (reactant3, &&);
& & & & & & & & }
& & & & & & & & if ((strcmp (reactant3, &cosmic-ray&) == 0)
& & & & & & & & & & & & || (strcmp (reactant3, &uv-photon&) == 0)
& & & & & & & & & & & & || (strcmp (reactant3, &photon&) == 0))
& & & & & & & & {
& & & & & & & & & & & & strcpy (reactant3, &&);
& & & & & & & & }
& & & & & & & & if ((strcmp (product1, &cosmic-ray&) == 0)
& & & & & & & & & & & & ||(strcmp (product1, &uv-photon&) == 0)
& & & & & & & & & & & & || (strcmp (product1, &photon&) == 0))
& & & & & & & & {
& & & & & & & & & & & & strcpy (product1, product2);
& & & & & & & & & & & & strcpy (product2, product3);
& & & & & & & & & & & & strcpy (product3, &&);
& & & & & & & & }
& & & & & & & & if ((strcmp (product2, &cosmic-ray&) == 0)
& & & & & & & & & & & & || (strcmp (product2, &uv-photon&) == 0)
& & & & & & & & & & & & || (strcmp (product2, &photon&) == 0))
& & & & & & & & {
& & & & & & & & & & & & strcpy (product2, product3);
& & & & & & & & & & & & strcpy (product3, &&);
& & & & & & & & }
& & & & & & & & if ((strcmp (product3, &cosmic-ray&) == 0)
& & & & & & & & & & & & || (strcmp (product3, &uv-photon&) == 0)
& & & & & & & & & & & & || (strcmp (product3, &photon&) == 0))
& & & & & & & & {
& & & & & & & & & & & & strcpy (product3, &&);
& & & & & & & & }
& & & & & & & & if ((strcmp (product4, &cosmic-ray&) == 0)
& & & & & & & & & & & & || (strcmp (product4, &uv-photon&) == 0)
& & & & & & & & & & & & || (strcmp (product4, &photon&) == 0))
& & & & & & & & {
& & & & & & & & & & & & strcpy (product4, &&);
& & & & & & & & }
& && &/* Fill the array of species. */
& & & & & & & & add_specie (reactant1, species, n_species);
& & & & & & & & add_specie (reactant2, species, n_species);
& & & & & & & & add_specie (reactant3, species, n_species);
& & & & & & & & add_specie (product1, species, n_species);
& & & & & & & & add_specie (product2, species, n_species);
& & & & & & & & add_specie (product3, species, n_species);
& & & & & & & & add_specie (product4, species, n_species);
& && &/* Fill the array of reactions. Exit if of the reactant and
& & & &&&product is not in the specie array. */
& & & & & & & & if (*n_reactions & MAX_REACTIONS)
& & & & & & & & {
& & & & & & & & & & & & if (((reactions.reactant1 =
& & & & & & & & & & & & & & & & specie_index (reactant1, species, *n_species)) == -2)
& & & & & & & & & & & & & & & & || ((reactions.reactant2 =
& & & & & & & & & & & & & & & & & & & & specie_index (reactant2, species, *n_species)) == -2)
& & & & & & & & & & & & & & & & || ((reactions.reactant3 =
& & & & & & & & & & & & & & & & & & & & specie_index (reactant3, species, *n_species)) == -2)
& & & & & & & & & & & & & & & & || ((reactions.product1 =
& & & & & & & & & & & & & & & & & & & & specie_index (product1, species, *n_species)) == -2)
& & & & & & & & & & & & & & & & || ((reactions.product2 =
& & & & & & & & & & & & & & & & & & & & specie_index (product2, species, *n_species)) == -2)
& & & & & & & & & & & & & & & & || ((reactions.product3 =
& & & & & & & & & & & & & & & & & & & & specie_index (product3, species, *n_species)) == -2)
& & & & & & & & & & & & & & & & || ((reactions.product4 =
& & & & & & & & & & & & & & & & & & & & specie_index (product4, species, *n_species)) == -2))
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & fprintf (stderr, &astrochem: %s:%d: can't find specie index.\n&,
& & & & & & & & & & & & & & & & & & & & & & & & __FILE__, __LINE__);
& & & & & & & & & & & & & & & & exit(1);
& & & & & & & & & & & & }
& & & & & & & & & & & & reactions.alpha =
& & & & & & & & & & & & reactions.beta =
& & & & & & & & & & & & reactions.gamma =
& & & & & & & & & & & & reactions.reaction_type = reaction_
& & & & & & & & & & & & reactions.reaction_no = reaction_
& & & & & & & & & & & & (*n_reactions)++;
& & & & & & & & }
& & & & & & & & else
& & & & & & & & {
& & & & & & & & & & & & fprintf (stderr, &astrochem: error: the number of reactions exceed %i.\n&,
& & & & & & & & & & & & & & & & & & & & MAX_REACTIONS);
& & & & & & & & & & & & exit(1);
& & & & & & & & }
& & & & if (verbose &= 1)
& & & & & & & & fprintf (stdout, &done.\n&);&&
& & & & & & & & fprintf (stdout, &Found %d reactions involving %d species.\n&,
& & & & & & & & & & & & & & & & *n_reactions, *n_species);
&&/* Close the file. */
& & & & fclose (f);
&&Add a specie in the species array, if not already present.
add_specie (char *new_specie, char *species,
& & & & & & & & & & & & int *n_species)
& & & & if (strcmp (new_specie, &&) == 0)
& & & & & & & &
& & & & for (i = 0; i & *n_ i++)
& & & & & & & & if (strcmp (species, new_specie) == 0)
& & & & & & & & & & & &
& & & & i = *n_
& & & & if (i & MAX_SPECIES)
& & & & & & & & if ((species = malloc (sizeof (char) * MAX_CHAR_SPECIES)) == NULL)
& & & & & & & & {
& & & & & & & & & & & & fprintf (stderr, &astrochem: %s:%d: %s\n&, __FILE__, __LINE__,
& & & & & & & & & & & & & & & & & & & & &array allocation failed.\n&);
& & & & & & & & & & & & exit (1);
& & & & & & & & }
& & & & & & & & if (strlen (new_specie) & MAX_CHAR_SPECIES - 1)
& & & & & & & & {
& & & & & & & & & & & & strcpy (species, new_specie);
& & & & & & & & & & & & (*n_species)++;
& & & & & & & & }
& & & & & & & & else
& & & & & & & & {
& & & & & & & & & & & & fprintf (stderr, &astrochem: error: the number of characters of some &
& & & & & & & & & & & & & & & & & & & & &species of the chemical network file exceeds %i.\n&,
& & & & & & & & & & & & & & & & & & & & MAX_CHAR_SPECIES);
& & & & & & & & & & & & exit (1);
& & & & & & & & }
& & & & else
& & & & & & & & fprintf (stderr, &astrochem: error: the number of species in the chemical&
& & & & & & & & & & & & & & & & &network file exceeds %i.\n&, MAX_SPECIES);
& & & & & & & & exit (1);
&&Look up the index of a given specie in the species array.
int specie_index (const char *specie, char *species, int n_species)
&&/* Return -1 if the specie name is empty. */
& & & & if (strcmp (specie, &&) == 0)
& & & & & & & & return -1;
& & & & for (i = 0; i & n_ i++)
& & & & & & & & if (strncmp (species, specie, sizeof (char) * MAX_CHAR_SPECIES) == 0)
& & & & & & & & {
& & & & & & & & & & & &
& & & & & & & & }
&&/* Return -2 if we can not find the specie */
& & & & return -2;
有三分之二的是在判断。你肯定没有看。需要理解只有一点点
一个普通程序员按200/天,看这么长程序的成本是很大的
#include &config.h&
#endiflm,[ 这句是有问题的,不符合C语言的要求
至少得保证你复制的程序是可靠的!可靠的!可靠的!(重要的事情说三遍)
总的来说,就是把文件按指定格式解析成结构体,就是数据格式化!
既然楼主说,需要理解的只有一点点,那到底是哪一点点楼主不理解????
研究生必备与500万研究生在线互动!
扫描下载送金币

我要回帖

更多关于 sizeof char 的值是 的文章

 

随机推荐