Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #10902

Re: To use Perl like conditional assignment in C

From Uno <merrilljensen@q.com>
Newsgroups comp.lang.c
Subject Re: To use Perl like conditional assignment in C
Date 2011-09-24 21:58 -0700
Message-ID <9e7n5aF5qvU1@mid.individual.net> (permalink)
References <a2b7378d-3156-4f3c-ad6a-1bf14330d993@5g2000yqo.googlegroups.com> <4E7DC3AA.427D@mindspring.com>

Show all headers | View raw


On 9/24/2011 4:48 AM, pete wrote:
> Ya Shou wrote:
>>
>> Hello,
>>
>> I want to assign an uncertain value to a variable, this variable with
>> values in the configuration file, reads the configuration file
>> through a function to return to the read configuration value, if not
>> configured or the value of non-compliance, will return 0 for failure,
>> when this, I will to give it a default value assigned.
>>
>> However, I found it seem impossible to achieve this in C, but much
>> easier to implement in Perl, see below:
>>
>> cfgval = loadConfig () || DEFAULT_VAL;
>>
>> In C '||' operator does not return the value of the expression which
>> is true, but returns 1 or 0, so that I can not be used in a similar
>> way. I considered a program in C is:
>>
>> cfgval = loadConfig ()? loadConfig (): DEFAULT_VAL;
>>
>> And however, this approach to involve a duplication of code, it is
>> ugly, the other will call loadConfig function twice, inefficient and
>> likely to cause unnecessary accidents.
>>
>> Of course, if / else statement can achieve this functionality, but
>> this method requires an additional variable, and not look simple. As
>> follows:
>>
>> int loadval = loadConfig ();
>> if (loadval! = 0) {
>>     cfgval = loadval;
>> } else {
>>     cfgval = DEFAULT_VAL;
>> }
>>
>> Or
>>
>> int loadval;
>> cfgval = (loadval! = 0)? loadval: DEFAULT_VAL;
>>
>> I would like to ask you is, in this case, there is nothing more
>> beautiful realization?
>
>      cfgval = loadConfig ();
>      if (cfgval == 0) {
>          cfgval = DEFAULT_VAL;
>      }
>

pete,

you just posted another syntax other than c tonight in clc; watch it, 
there, revolutionary.
-- 
Uno

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

To use Perl like conditional assignment in C Ya Shou <shouyatf@gmail.com> - 2011-09-24 04:06 -0700
  Re: To use Perl like conditional assignment in C Willem <willem@toad.stack.nl> - 2011-09-24 11:13 +0000
  Re: To use Perl like conditional assignment in C pete <pfiland@mindspring.com> - 2011-09-24 07:48 -0400
    Re: To use Perl like conditional assignment in C Uno <merrilljensen@q.com> - 2011-09-24 21:58 -0700
      Re: To use Perl like conditional assignment in C pete <pfiland@mindspring.com> - 2011-09-25 08:44 -0400
        Re: To use Perl like conditional assignment in C Uno <merrilljensen@q.com> - 2011-09-26 21:52 -0700
          Re: To use Perl like conditional assignment in C pete <pfiland@mindspring.com> - 2011-09-27 21:14 -0400
            Re: To use Perl like conditional assignment in C Keith Thompson <kst-u@mib.org> - 2011-09-27 19:56 -0700
      Re: To use Perl like conditional assignment in C Nick Keighley <nick_keighley_nospam@hotmail.com> - 2011-09-25 06:53 -0700
      Re: To use Perl like conditional assignment in C "J. J. Farrell" <jjf@bcs.org.uk> - 2011-09-26 04:40 +0100
  Re: To use Perl like conditional assignment in C Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-09-24 09:04 -0400
    Re: To use Perl like conditional assignment in C Willem <willem@toad.stack.nl> - 2011-09-24 14:06 +0000
    Re: To use Perl like conditional assignment in C Ya Shou <shouyatf@gmail.com> - 2011-09-26 21:10 -0700
    Re: To use Perl like conditional assignment in C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2011-09-29 22:08 +0000
  Re: To use Perl like conditional assignment in C "BartC" <bc@freeuk.com> - 2011-09-26 01:37 +0100

csiph-web