I totally agree with Carmenere, and I also have a 17 year old 6 foot dustbin/neanderthal in the house. He knows what he can help himself to without asking - which basically boils down to fruit and the occasional bit of "kindheartedness" on my part when I offer him carte blanche grazing - usually something I've found I don't like myself, or something near its use by date !
If he asks, he'll probably get a yes about 50% of the time, so it's not like I'm a complete witch, but on the other hand, I'm not having him eating anything that's not nailed down to the detriment of everyone else, or effectively hoovering up £10 worth in half an hour, or leaving me without stuff I'd planned to use for a meal or in a recipe.
He knows "the rules", or he should do. In the past, I have had him pay me back for large quantities of stuff he's guzzled - especially so when he's denied doing it (but easy to prove as he never empties his bin, and also tends to stuff rubbish under his mattress !) because he needs to learn consideration for the rest of us, and appreciate that he is not living in a hotel with a free mini-bar. Apart from screaming at him, I have also had him pay in kind - by hoovering the whole house, or by grounding him.
Maybe I'm being too hard .... but I simply don't have the money to keep a limitless supply of treats in stock, and can't possibly plan meals if stuff goes missing. He's still not perfect - the teenage greed/thoughtlessness gene must be too powerful - but much better than he was. You just have to keep on (and on) and make them suffer in some way each time they do it.
It's also improved since he got a Saturday job in Starbucks, as he brings home all the out of date & unsold cakes, paninis etc !!!