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


Groups > comp.lang.c > #105690

Re: Need explanation of C syntax for a Perl 6 guy

From T <T@invalid.invalid>
Newsgroups comp.lang.c
Subject Re: Need explanation of C syntax for a Perl 6 guy
Date 2017-03-09 12:40 -0800
Organization A noiseless patient Spider
Message-ID <o9sefi$jrf$3@dont-email.me> (permalink)
References <o9ql0c$di9$1@dont-email.me> <87k27yzr4i.fsf@bsb.me.uk>

Show all headers | View raw


On 03/09/2017 02:22 AM, Ben Bacarisse wrote:
> T <T@invalid.invalid> writes:
> <snip>
>> int XStoreBuffer(Display *display, char *bytes,
>>                  int nbytes, int buffer);
>>
>> char *XFetchBuffer(Display *display,
>>                  int *nbytes_return, int buffer);
>>
>> Questions:
>>    1) what does the * do to the variable?
>
> It does something to the name.  It indicates that the name has a more
> complex type that the type sitting just to the left.  C uses an odd
> system in which things with types that are derived from the base types
> (int, char, float and so on) are declared by decorating the name.
>
> When you see "int ..." you know that the things being declared have
> something to do with int (one of C's many integer types) but that's
> all.  The details are provided by the stuff around the name.  For
> example
>
>    int     x;           // x is an int
>    int    *x;           // x is a pointer to int
>    int     x[3];        // x is an array of 3 ints
>    int    *x[3];        // x is an array of 3 pointers to int
>    int   (*x)[3];       // x is a pointer to an array of 3 ints (rare)
>    int     x(void);     // x is a function of no arguments
>                         // that returns an int
>    int    *x(void);     // x is a function of no arguments
>                         // that returns a pointer to int
>    int   (*x)(void);    // x is a pointer to a function of no arguments
>                         // that returns an int.
>
> (Note that, just like in expressions, parentheses are sometimes needed
> because the things that go after a name []s and ()s bind more tightly
> then * which goes in front.)
>
> Some of the answers here have concentrated on the type, describing "T*"
> as a "pointer to T" type.  This fine as far as it goes, but it's less
> helpful when
>
> (a) you see mixed declarations like this:
>
>   char c, buf[1000], *bptr = &buf[0];
>
> (b) the declaration is more complex like some of those above.
>
> <snip>
>

Thank you!

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


Thread

Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-08 20:20 -0800
  Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-08 20:57 -0800
    Re: Need explanation of C syntax for a Perl 6 guy Barry Schwarz <schwarzb@dqel.com> - 2017-03-09 00:46 -0800
  Re: Need explanation of C syntax for a Perl 6 guy gordonb.txjrp@burditt.org (Gordon Burditt) - 2017-03-09 03:29 -0600
    Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-09 12:39 -0800
  Re: Need explanation of C syntax for a Perl 6 guy jt@toerring.de (Jens Thoms Toerring) - 2017-03-09 10:16 +0000
    Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-09 12:40 -0800
    Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-09 13:25 -0800
      Re: Need explanation of C syntax for a Perl 6 guy jt@toerring.de (Jens Thoms Toerring) - 2017-03-10 21:02 +0000
        Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-10 17:49 -0800
  Re: Need explanation of C syntax for a Perl 6 guy Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-03-09 10:22 +0000
    Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-09 12:40 -0800
  Re: Need explanation of C syntax for a Perl 6 guy GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-09 12:48 +0100
    Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-09 12:43 -0800
      Re: Need explanation of C syntax for a Perl 6 guy James Kuyper <jameskuyper@verizon.net> - 2017-03-10 10:22 -0500
        Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-10 11:47 -0800
          Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-10 12:42 -0800
        Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-10 19:52 -0800
  Re: Need explanation of C syntax for a Perl 6 guy raltbos@xs4all.nl (Richard Bos) - 2017-03-09 12:09 +0000
    Re: Need explanation of C syntax for a Perl 6 guy Keith Thompson <kst-u@mib.org> - 2017-03-09 09:05 -0800
  Re: Need explanation of C syntax for a Perl 6 guy John Bode <jfbode1029@gmail.com> - 2017-03-09 12:31 -0800
    Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-09 12:41 -0800
  Re: Need explanation of C syntax for a Perl 6 guy Paul <nospam@needed.invalid> - 2017-03-10 04:06 -0500
    Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-10 12:42 -0800
      Re: Need explanation of C syntax for a Perl 6 guy jt@toerring.de (Jens Thoms Toerring) - 2017-03-10 21:35 +0000
        Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-10 17:48 -0800
      Re: Need explanation of C syntax for a Perl 6 guy John Bode <jfbode1029@gmail.com> - 2017-03-10 14:54 -0800
        Re: Need explanation of C syntax for a Perl 6 guy T <T@invalid.invalid> - 2017-03-10 17:43 -0800
      Re: Need explanation of C syntax for a Perl 6 guy James Kuyper <jameskuyper@verizon.net> - 2017-03-10 21:11 -0500

csiph-web