You buy for a specific structure. D was closer to the old building, but B is closer to the new building...though the difference is negligible.
I recommend D over B, though, because of access. You can get to D from Jefferson going east or west because the entrance to the structure is an intersection with a light...so you can come to Jefferson from Hoover or Figueroa, and that goes for exiting as well.
B, however, can only be accessed from Jefferson going east, and there's no intersection to turn into. You must be coming east on Jefferson from Vermont to enter, and you can only leave in the same manner.
Another option is The Parking Center. If you are never late, I suggest it...you park further from campus, and take a shuttle.
A classmate of mine parks at 1 or 2, can't remember, and he keeps a bike in his car and bikes the rest. I can't fit a bike in my car.
I parked in D my first year, and I parked at the Shrine this year...because I didn't get a D pass due to late application.
It worked for me this year. The Shrine is across from D, so it's not really any further, and it's $96/semester cheaper than D or B. (it's still more than 1 or 2 or the Parking Center.)
Downsides to the Shrine:
it's locked at 11. No in or outs from 11p-7a.
can't park there on game days, during the Grammys, football games, during this event, that event, etc.
With USC parking, you can come in or out as you please, and if you get there in time, you can park there on game days. Also, after 6pm, and on weekends, your USC pass is good in ANY lot on campus, not just the assigned ones.
The Shrine worked for me this year, but because I know I'll be editing late nights next year, I'm going back to D this year.
Hope that helps.