Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| Path | csiph.com!1.us.feeder.erje.net!feeder.erje.net!1.eu.feeder.erje.net!border1.nntp.ams1.giganews.com!nntp.giganews.com!buffer1.nntp.ams1.giganews.com!nntp.brightview.co.uk!news.brightview.co.uk.POSTED!not-for-mail |
|---|---|
| NNTP-Posting-Date | Fri, 30 Sep 2016 16:09:57 -0500 |
| From | Gareth Owen <gwowen@gmail.com> |
| Newsgroups | comp.lang.c |
| Subject | Re: volatile in struct member |
| References | <dc811de3-cad5-4f57-b68d-dd8b0252e507@googlegroups.com> <aa598ef6-1a14-443d-b1f7-50a20cecef0c@googlegroups.com> <87ponl8pxf.fsf@bsb.me.uk> |
| Date | Fri, 30 Sep 2016 22:09:57 +0100 |
| Message-ID | <87wphtt7q2.fsf@gmail.com> (permalink) |
| User-Agent | Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
| Cancel-Lock | sha1:7tfCA5/dkBlRVbwz68PikN0twjM= |
| MIME-Version | 1.0 |
| Content-Type | text/plain |
| Lines | 31 |
| X-Usenet-Provider | http://www.giganews.com |
| X-Trace | sv3-Esms9TiVndhHAT2Fb/7E3U3bf3/e72R6+xImQ+Le5kMoDLTwQgJQ5L2eLACt4PLyCiCe+qM3dfXV+xt!Py9kxDjZRsb5fju13pyjfTigg47hxEke/1sAQUHxnJCWzKtslmOb+0OiJVW7K7jUdHQITA== |
| X-Abuse-and-DMCA-Info | Please be sure to forward a copy of ALL headers |
| X-Abuse-and-DMCA-Info | Otherwise we will be unable to process your complaint properly |
| X-Postfilter | 1.3.40 |
| X-Original-Bytes | 1819 |
| Xref | csiph.com comp.lang.c:94335 |
Show key headers only | View raw
Ben Bacarisse <ben.usenet@bsb.me.uk> writes:
> But I suspect the question is more about the placement of the keyword.
> I'd put the volatile on the object declaration:
>
> struct small { int i; };
> volatile struct small sm;
But one could easily imagine a struct like
struct register
{
volatile int * address;
int last_written_value;
}
void write_reg(struct register*reg,int val)
{
*reg->address = val;
last_written_value = val;
}
int read_reg(struct register*reg,int val)
{
return reg->last_written_value;
}
I wouldn't need to have the cached value marked as volatile (though in a
trivial example like this it would make little difference to performance).
I've programmed FPGAs with "write only" registers like this.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
volatile in struct member Thiago Adams <thiago.adams@gmail.com> - 2016-09-30 04:52 -0700
Re: volatile in struct member Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-09-30 05:50 -0700
Re: volatile in struct member Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-09-30 14:42 +0100
Re: volatile in struct member Gareth Owen <gwowen@gmail.com> - 2016-09-30 22:09 +0100
Re: volatile in struct member Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-09-30 22:24 +0100
Re: volatile in struct member Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-09-30 14:29 +0100
Re: volatile in struct member David Brown <david.brown@hesbynett.no> - 2016-09-30 16:22 +0200
Re: volatile in struct member Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-09-30 15:51 +0100
Re: volatile in struct member David Brown <david.brown@hesbynett.no> - 2016-09-30 17:07 +0200
Re: volatile in struct member Tim Rentsch <txr@alumni.caltech.edu> - 2016-10-08 15:48 -0700
Re: volatile in struct member David Brown <david.brown@hesbynett.no> - 2016-09-30 15:36 +0200
Re: volatile in struct member Thiago Adams <thiago.adams@gmail.com> - 2016-09-30 06:47 -0700
Re: volatile in struct member James Kuyper <jameskuyper@verizon.net> - 2016-09-30 12:53 -0400
Re: volatile in struct member supercat@casperkitty.com - 2016-09-30 10:18 -0700
Re: volatile in struct member raltbos@xs4all.nl (Richard Bos) - 2016-09-30 20:57 +0000
Re: volatile in struct member supercat@casperkitty.com - 2016-09-30 14:46 -0700
Re: volatile in struct member Thiago Adams <thiago.adams@gmail.com> - 2016-09-30 10:22 -0700
Re: volatile in struct member jameskuyper@verizon.net - 2016-09-30 14:08 -0700
csiph-web