I have not that much experience with 2D,
but you might consider doing this with vectors.
Like you could get a vector enemy-player (e.g. EP) when enemy shoots:
EP = EnemyPos - PlayerPos
Then you could move the bullet by let's say a tenth of this vector:
BulletPos += EP * 0.1
That should move the bullet in the direction of the player and you don't have to deal with sin/tan/cos at all.
The drawback is that you will have to find a way to make the bullet move at a constant speed, no matter where the enemy was when it shot (because it will result in different lengths of EP).
Just a thought to get you on the right track. I might be very wrong...
EDIT:
Oops, just saw that you didn't mention 2D at all, but it should be almost the same for 3D...
Now the plot thickens, the fps decreases, and the awesomeness goes through the roof.